另一个有用的东西是 EntityQuery 或 HibernateEntityQuery。您可以在 XML 中指定查询,然后可以在整个应用程序中将它们作为 Seam 组件引用。尽管我在 JPA 中使用了这个非常受欢迎的 NamedQuery,但我认为这不是标准做法。
<framework:entity-query name="User_findByEmailAddress" ejbql="SELECT u FROM User u">
<framework:restriction>
<value>u.emailAddress = #{emailAddress}</value>
</framework:restriction>
</framework:entity-query>
然后在您的 Java 代码中,您可以执行以下操作:
@In
private EntityQuery<User> User_findByEmailAddress;
...
Contexts.getEventContext().set("emailAddress", emailAddress);
User user = User_findByEmailAddress.getSingleResult();
如果你想在你的 xhtml 页面中使用它,你也可以在那里使用它并内置对分页的支持。
沃尔特