如何有效地使用 Hibernate 从 table 中获取所有行?
How to get all the rows from a table using Hibernate efficiently?
我希望显示使用休眠的 table 中的所有行。我用的是 Hibernate 5.
我试过这样的
但是方法 createCriteria 显示为折旧方法。请建议我一种从 table
获取所有数据的有效方法
session.createCriteria(Student.class).list();
我有一个这样的 Student Bean class:
package com.Hibernate;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="student")
public class Student {
@Id
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
并且有一个 Student.hbm.xml 文件,如:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 4 Jun, 2019 3:36:17 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="com.Hibernate.Student" table="STUDENT">
<id name="id" type="int">
<column name="ID" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
</class>
</hibernate-mapping>
在 Hibernate 5+
中使用 CriteriaBuilder
和 CriteriaQuery
接口
// Create CriteriaBuilder
CriteriaBuilder builder = session.getCriteriaBuilder();
// Create CriteriaQuery
CriteriaQuery<Student> criteria = builder.createQuery(Student.class);
// Set root
Root<Student> root = criteria.from(Student.class);
criteria.select(root);
// Query execution
Query<Item> query = session.createQuery(criteria);
List<Item> results = query.getResultList();
我希望显示使用休眠的 table 中的所有行。我用的是 Hibernate 5.
我试过这样的 但是方法 createCriteria 显示为折旧方法。请建议我一种从 table
获取所有数据的有效方法session.createCriteria(Student.class).list();
我有一个这样的 Student Bean class:
package com.Hibernate;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="student")
public class Student {
@Id
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
并且有一个 Student.hbm.xml 文件,如:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 4 Jun, 2019 3:36:17 PM by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="com.Hibernate.Student" table="STUDENT">
<id name="id" type="int">
<column name="ID" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
</class>
</hibernate-mapping>
在 Hibernate 5+
中使用CriteriaBuilder
和 CriteriaQuery
接口
// Create CriteriaBuilder
CriteriaBuilder builder = session.getCriteriaBuilder();
// Create CriteriaQuery
CriteriaQuery<Student> criteria = builder.createQuery(Student.class);
// Set root
Root<Student> root = criteria.from(Student.class);
criteria.select(root);
// Query execution
Query<Item> query = session.createQuery(criteria);
List<Item> results = query.getResultList();