@namedqueries

介绍

如果您是使用JPA的Java开发人员,则很可能在实体上声明了一个或多个@NamedQuery对象。

要在类上声明@NamedQuery ,必须在类中简单地用查询名称及其JPQL进行注释,例如:

@Entity
@NamedQuery(name = "findAllProjects",query = "select p from Project p order by p.id")
public class Project

但是,如果我们想声明多个@NamedQuery批注,注释,我们用类@NamedQueries批注,然后包含集合@NamedQuery注释,如下所示:

@Entity
@NamedQueries({ @NamedQuery(name = "findAllProjects",query = "select p from Project p order by p.id"),@NamedQuery(name = "findById",query = "select p from Project p where p.id=:id")
})
public class Project

枚举@NamedQuery批注

创建具有多个@NamedQuery批注的实体后,如何检查类中存在哪些批注?

幸运的是,使用反射,枚举类中的注释并找到有关它们的详细信息非常简单,如下面的代码所示。

NamedQueries annotation = Project.class.getAnnotation(NamedQueries.class);
for (Annotation annot : annotation.value()) {System.out.println(annot.toString());for (Method method : annot.annotationType().getDeclaredMethods()) {if (method.getName().equalsIgnoreCase("name") ||method.getName().equalsIgnoreCase("query")) {try {String result = method.getName() + " : " + method.invoke(annot,  null).toString();System.out.println(result);} catch (IllegalAccessException | IllegalArgumentException| InvocationTargetException e) {// Oops - something has gone wrong.break;}}}
}

运行上面的代码将产生以下输出:

@javax.persistence.NamedQuery(lockMode=NONE, hints=[], name=findAllProjects, query=select p from Project p order by p.id)
name : findAllProjects
query : select p from Project p order by p.id@javax.persistence.NamedQuery(lockMode=NONE, hints=[], name=findById, query=select p from Project p where p.id=:id)
name : findById
query : select p from Project p where p.id=:id

翻译自: https://www.javacodegeeks.com/2015/03/enumerating-namedquery-within-namedqueries.html

@namedqueries

@namedqueries_在@NamedQueries中枚举@NamedQuery相关推荐

  1. 在@NamedQueries中枚举@NamedQuery

    介绍 如果您是使用JPA的Java开发人员,则很可能在实体上声明了一个或多个@NamedQuery对象. 要在类上声明@NamedQuery ,必须使用查询名称及其JPQL对该类进行简单注释,例如: ...

  2. java 枚举的继承_java中枚举类可以被继承吗?

    java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...

  3. 《挑战30天C++入门极限》新手入门:C/C++中枚举类型(enum)

        新手入门:C/C++中枚举类型(enum) 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型.之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来. ...

  4. Swift 中枚举、结构体、类(enum、struct、class)

    Swift 中枚举.结构体.类(enum.struct.class) Swift中的枚举与OC相比不会自动分配初始值,值的类型不会限定为整数,可以给定关联值类型和具体值(整型.浮点型.字符型(Swif ...

  5. c#和c++中枚举类型的区别(简)

    c#和c++中枚举类型的区别(简) C++中 枚举类型中的每个元素,可以直接使用,不必通过类型.元素的方式调用 没有++操作 #include <iostream> using names ...

  6. Java中枚举的线程安全性及序列化问题

    转载自  Java中枚举的线程安全性及序列化问题 Java SE5提供了一种新的类型-Java的枚举类型,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序 ...

  7. java基础----Java中枚举的使用(一)

    这里介绍一下java中关于枚举的使用. java中枚举的使用 一.枚举中可以定义方法 参照于TimeUnit的使用,TimeUnit.MILLISECONDS.sleep(1000); LoveUti ...

  8. C++中枚举的用法(比较全面)(转)

    2019独角兽企业重金招聘Python工程师标准>>> 1.枚举enum的用途浅例       写程序时,我们常常需要为某个对象关联一组可选alternative属性.例如,学生的成 ...

  9. python读取枚举_在python中枚举(enumerate in python)

    在python中枚举(enumerate in python) 说, term='asdf'; InvertedIndex = {}; InvertedIndex[term] = [1,2,2,2,4 ...

最新文章

  1. python和R数据类型查看、赋值、列表、for循环、函数用法对比示例
  2. window下Nodejs的部署
  3. layui token 过期 重新登陆
  4. CodeForces - 1220D Alex and Julian(思维+数论)
  5. 安装mysql没有提示设置密码_18.04安装mysql没有提示输入密码
  6. vue项目打包:npm run build 进程卡死
  7. FP-Growth算法
  8. mfc用数组怎么存储句柄_指南手机存储不足怎么办?用好这份清理指南你的手机还能再战三年...
  9. 帝豪gs车机系统wince_酷车:10万左右买辆“网红车”,名爵ZS和帝豪GS怎么选?...
  10. 【PPT】极简PPT设计方法
  11. 为什么微信显示这个android设备,微信显示安卓手机型号在哪设置
  12. 社工2014年春晚名人小彩旗(魏彩绮)
  13. python计算存款复利计算器_分享下自己写的计算余额宝上复利的代码,网上的复利计算器无法满足需求...
  14. 全球室内设计界NO.1力作!东呈联合HBA打造柏曼酒店;万豪集团在上海开设第五家福朋喜来登酒店 | 美通社头条...
  15. jdk的keytool生成jks和获取jks的信息,公匙
  16. 史上最全Apidoc文档生成详解
  17. apa引用要在文中吗_引用还是抄袭?80%的大学生都搞不懂的学术写作!
  18. 【SV 基础】queue 的一些用法
  19. IEC60870-5-104报文解析
  20. Cocos2d-x利用xxtea进行图片资源加密

热门文章

  1. ssl1762-工厂的烦恼【图论,最短路变形(最长路)】
  2. Codeforces Round #684 (Div. 2)
  3. 各种模板(数学数论字符串)
  4. WZK的排名(jzoj 1995)
  5. 【树形DP】没有上司的晚会 (ssl 1607)
  6. GYM 101908F - Music Festival
  7. SpringBoot @Resource注入的坑
  8. art-template入门(六)之解析规则
  9. epoll 浅析以及 nio 中的 Selector
  10. java变量作用域Scope