【发布时间】:2011-12-18 22:16:47
【问题描述】:
我正在开发使用 Hibernate 作为其持久性提供程序的 J2EE 6 代码库。我的经验更多是在 Spring 中,我对 JPA 注释和类似的东西还很陌生,但是我注意到所有实体类中都有很多这样的东西,这让我感到惊讶——我认为 @NamedQuery 更适合复杂的 SQL?确定这些简单的选择(以及在休眠映射中定义的连接)可以在不写出 SQL 的情况下完成吗?
In the Entity:
@NamedQueries({
@NamedQuery(name = "DealRaw.findByrawUrl", query = "SELECT d FROM DealRaw d WHERE d.rawUrl = :rawUrl"),
@NamedQuery(name = "DealRaw.findByState", query = "SELECT d FROM DealRaw d WHERE d.state = :state"),
.... etc ....
})
然后
In the Service Class
Query qR=_em.createNamedQuery("DealRaw.findByrawUrl"); //_em is an EntityManager
qR.setParameter("rawUrl", value);
List<DealRaw> dRs=(List <DealRaw>)qR.getResultList();
【问题讨论】:
标签: hibernate jakarta-ee jpa named-query