4
我正在开发用于实现MVC基于Struts2框架 Web应用程序,并Hibernate3中通过的的DAO手段accesing数据库,的DTO为映射数据库中的对象关系。在Hibernate上下文中,我想知道Criteria Clases用于进行复杂查询的范围,以及是否还有其他选项可用于执行此类任务?Hibernate的标准类制作复杂的查询数据库
谢谢。
我正在开发用于实现MVC基于Struts2框架 Web应用程序,并Hibernate3中通过的的DAO手段accesing数据库,的DTO为映射数据库中的对象关系。在Hibernate上下文中,我想知道Criteria Clases用于进行复杂查询的范围,以及是否还有其他选项可用于执行此类任务?Hibernate的标准类制作复杂的查询数据库
谢谢。
通过“reach”,我假定您的意思是复杂的SQL相关查询的域,可以通过链接方法调用通过特定的Criteria对象构建域(如here所述)。
根据我的经验,依靠结果过滤,排序,投影,分组,逻辑连接或分离语句或subquerying的大多数常见任务可以通过以预期方式变异对象来执行。
作为一种替代方案,您可以使用Session.createSQLQuery
构造原始SQL查询,然后使用Query.list
或Query.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();
很明显,你会想从这个天真的例子中延伸出来,但你明白了。
非常感谢你回答 – Dana 2010-12-05 02:49:35