Как получить все строки из таблицы, используя Hibernate эффективно? - PullRequest
0 голосов
/ 09 июня 2019

Я хочу, чтобы все строки из таблицы отображались в режиме гибернации. Я использовал Hibernate 5.

Я пробовал что-то подобное Но метод createCriteria показывался как устаревший метод. Пожалуйста, предложите мне эффективный способ получить все данные из таблицы

session.createCriteria(Student.class).list();

У меня был такой класс для учеников:

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>


1 Ответ

1 голос
/ 09 июня 2019

Использование интерфейсов CriteriaBuilder и CriteriaQuery в Hibernate 5 +

// 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();
...