任何人都可以告诉我Hibernate的区别:
createCriteria
createQuery
createSQLQuery
任何人都可以告诉我这三个函数返回的数据,c.q。指导我研究这些Hibernate函数的正确和简单的链接?
答案 0 :(得分:36)
要在Hibernate ORM框架中创建查询,有三种不同的类型。以下是创建查询实例的三种方法:
session.createQuery()
session.createSQLQuery()
session.createCriteria()
详细了解每个类别的详细信息。
Session.createQuery()
方法createQuery()使用HQL语法创建Query对象。例如:
Query query = session.createQuery("from Student s where s.name like 'k%'");
Session.createSQLQuery()
createSQLQuery()方法使用本机SQL语法创建Query对象。例如:
Query query = session.createSQLQuery("Select * from Student");
Session.createCriteria()
createCriteria()方法创建Criteria对象以设置查询参数。对于那些不想编写查询的人来说,这是一个更有用的功能。您可以使用Criteria API指定任何类型的复杂语法。
Criteria criteria = session.createCriteria(Student.class);
答案 1 :(得分:8)
1. session.createQuery()-> Can create query using HQL and can perform CRUD Operations
示例:
Query query = session.createQuery("from Student");
List list=quey.list();
Query query = session.createQuery("update Student where studentid=9");
int result=query.executeUpdate();
Query query = session.createQuery("delete Student where studentid="+ studentId);
int result=query.executeUpdate();
Query query = session.createQuery("insert into Student where studentid="+ studentId);
int result=query.executeUpdate();
答案 2 :(得分:4)
------------------------
PERSON
------------------------
**DB_Column**| **POJO**
PERSON_ID | personID
------------------------
<强>的createQuery()强>
你正在使用pojo字段。使用HQL语法。
Query query = session.createQuery("from Person s where s.personID like 'A%'");
// returns:
List<Person> persons = query.list();
<强> createSQLQuery()方法强>
您正在使用Native | DB字段。 谷歌搜索一些网站,来了解这也将清除缓存,因为休眠不知道你已经执行了什么。
Query query = session.createSQLQuery("select s.* from Person s where s.person_ID like 'A%'");
// returns:
List<Object[]> persons = query.list();.
<强>个createCriteria()强>
只读查询
Criteria criteria = session.createCriteria(Person.class);
criteria.add(Restrictions.like("personId", "A%"));
List<Person> persons = criteria .list();
答案 3 :(得分:0)
createSQLQuery - 用于本机sql查询,由jdbc驱动程序cfg或其他人选择。
createQuery - 用于hibernate查询,它为您提供独立查询,使您可以使用API在许多数据库上运行该查询以及更多其他优势。
createCriteria - 最好用于简单查询数据库,因为它非常简单。
我希望这可以帮到你!