我想利用数据库独立的HQL和Type Criteria API的类型安全性。但我没有实体课程。
我可以直接使用Criteria API吗?
答案 0 :(得分:3)
答案 1 :(得分:2)
首先,我们注意到Criteria API通常用作HQL的替代品来构建动态查询(“ HQL非常强大,但是一些开发人员更喜欢使用面向对象的API动态构建查询,而不是构建查询字符串“reference link)。
其次,Hibernate是一个对象/关系(数据库)持久性实现。为了使用 我们需要定义其对象应映射到目标数据库表(实体)的类。
对于使用域类的Hibernate会话获得Criteria API:
Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(50);
List cats = crit.list();
Session对象使用“Cat”类到其对应表(可能在数据库中命名为“Cat”)的映射。
所以,最后没有实体类及其Mappings,没有Session对象。没有Session,没有Criteria对象。
标准需要知道需要查询的类(Cat.class)。
答案 2 :(得分:0)
如何告诉hibernate你要应用哪个类critera ??
所以你必须在createcriteria(Entity.class)中传递实体类名。
并且你...标准提供了丰富的功能,这将减少你的代码。
但请注意......所有事情都有积极的 - 消极的。
标准也有一些负面意义......
所以..小心点。根据您的应用相关规范使用