刚才我为JPA实体写了一个NamedQuery
,对此感到非常高兴。
在这里。
@NamedQuery(name=Panties.RED_PANTIES_QRY, query="SELECT p FROM Panties p WHERE p.color = red")
public class Panties implements Serializable {
public static final String RED_PANTIES_QRY = "panties.red_panties";
//getters and setters
}
使用
entityManager.createNamedQuery(Panties.RED_PANTIES_QRY).getResultList();
还可以省略NamedQuery
注释,只做
public class Panties implements Serializable {
public static final String RED_PANTIES_QRY = "SELECT p FROM Panties p WHERE p.color = red";
//getters and setters
}
使用
entityManager.createQuery(Panties.RED_PANTIES_QRY).getResultList();
所以问题是。第一个例子有什么好处?
答案 0 :(得分:3)
主要好处是通常在应用程序启动时验证和解析命名查询。这意味着如果出现任何问题,将立即报告,并且应用程序不会启动。
除了验证之外,查询已准备好一次,可以在应用程序的任何位置使用。因此,任何后续使用的命名查询都不会导致任何额外的处理,这有利于提高性能。