关于jpa的Specification自定义函数,实现oracle的decode;以及如何在静态方法中调用注入的service
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了关于jpa的Specification自定义函数,实现oracle的decode;以及如何在静态方法中调用注入的service,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2235字,纯文字阅读大概需要4分钟。
内容图文
![关于jpa的Specification自定义函数,实现oracle的decode;以及如何在静态方法中调用注入的service](/upload/InfoBanner/zyjiaocheng/513/0125e17830da42d8a5eef7c01bfede61.jpg)
@Resource
private Service service;
//原理时在工程启动时加载,在静态方法前加载,这样就可以在静态方法中调用注入的方法啦 @PostConstruct public void init() { classA = this;
classA.service=service; }
}
关于jpa的Specification自定义函数
这个时自定义方法的源码,有注释,不多说啦
1 /** 2 * Create an expression for the execution of a database 3 * function. 4 * @param name function name 5 * @param type expected result type 6 * @param args function arguments 7 * @return expression 8 */ 9 <T> Expression<T> function(String name, Class<T> type, 10 Expression<?>... args);
咱说说这个类,也就是
ParameterizedFunctionExpression,是如何实现动态组合排序条件,实现decode
<T> Expression<T> function(String name, Class<T> type,
Expression<?>... args);
//这是function实现实际调用的方法;他调用的就是这个类ParameterizedFunctionExpression的构造方法
@Override
public <T> Expression<T> function(String name, Class<T> returnType, Expression<?>... arguments) {
return new ParameterizedFunctionExpression<T>( this, returnType, name, arguments );
}
//ParameterizedFunctionExpression的构造方法
public ParameterizedFunctionExpression(
CriteriaBuilderImpl criteriaBuilder,
Class<X> javaType,
String functionName,
Expression<?>... argumentExpressions) {
super( criteriaBuilder, javaType, functionName );
this.argumentExpressions = Arrays.asList( argumentExpressions );
this.isStandardJpaFunction = STANDARD_JPA_FUNCTION_NAMES.contains( functionName.toUpperCase(Locale.ROOT) );
}
//实现
Expression<Integer> expression = null;
//存储排序条件
List<Expression<?>> argumentExpressions = new ArrayList<Expression<?>>();
//排序字段
argumentExpressions.add(cb.literal("grade");
//排序的顺序
argumentExpressions.add(cb.literal(1));
expression = new ParameterizedFunctionExpression<Integer>((CriteriaBuilderImpl) cb, Integer.class, "decode",
argumentExpressions);
关于jpa的Specification自定义函数,实现oracle的decode;以及如何在静态方法中调用注入的service
标签:oca int names strong ora 定义 mes 存储 oracl
本文系统来源:https://www.cnblogs.com/xiaoshahai/p/11516870.html
内容总结
以上是互联网集市为您收集整理的关于jpa的Specification自定义函数,实现oracle的decode;以及如何在静态方法中调用注入的service全部内容,希望文章能够帮你解决关于jpa的Specification自定义函数,实现oracle的decode;以及如何在静态方法中调用注入的service所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。