Hibernate Criteria类用于向数据库进行复杂查询。

4
我正在开发一个基于Struts2框架的Web应用程序,用于实现MVC。通过DAOs使用Hibernate3访问数据库,并使用DTOs映射数据库中的关系对象。在Hibernate上下文中,我想了解Criteria类在进行复杂查询时的范围,以及是否有其他选项可以完成这些任务?谢谢。
1个回答

3
"reach"指的是通过特定Criteria对象的方法调用链接构建的复杂SQL相关查询领域(如此处所讨论的)。
根据我的经验,大多数依赖于结果过滤、排序、投影、分组、逻辑合取或析取语句或子查询的常见任务可以通过按预期方式改变Criteria对象来完成。
作为替代方案,您可以使用Session.createSQLQuery来构建原始SQL查询,然后使用Query.listQuery.executeUpdate来执行它。例如: "
Sesion sess = getSession();
Query mySelect = sess.createSQLQuery("SELECT * from foo");
List<Entity> results = mySelect.list();

Query myUpdate = sess.createSQLQuery("DELETE * from foo where bar = \"boz\"");
int updateCount = myUpdate.executeUpdate();

显然,你会想要从这个简单的例子中扩展,但你已经有了想法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接