Java 如何使用hibernate获取表中的所有数据?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/43037814/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 00:37:52  来源:igfitidea点击:

How to get all data in the table with hibernate?

javaspringhibernatejsp

提问by user1833860

public Service getServiceData(){
    return (Service)ServiceDaoImpl.getSession().get(Service.class, new Integer(1));
}

The get method is getting one. I want to get all data for the jsp page.

get 方法是获取一个。我想获取jsp页面的所有数据。

回答by Neha Shettar

Try as following to get all rows from table

尝试如下获取表中的所有行

@SuppressWarnings("unchecked")
    public List<Service> Service getServiceData() {

         return ServiceDaoImpl.getSession().createQuery("from Service").list(); 
    }

回答by Radhika

Try below piece of code and replace Entity with your Entity class

尝试下面的一段代码并用你的实体类替换实体

@SuppressWarnings("unchecked")      
public List<Entity> getAlldata(){       
    try
    {
        return sessionFactory.getCurrentSession().createCriteria(Entity.class).list();
    } catch (Exception e) {
        return new ArrayList<>();
    }
}

回答by richard ordo?ez

public List<Service> getServiceAll(){
     return ServiceDaoImpl.getSession().createCriteria(Service.class).list();
}

回答by Bhagvat

Configuration cfg = new Configuration(); cfg.configure("hibernate.cfg.xml");

配置 cfg = 新配置();cfg.configure("hibernate.cfg.xml");

    SessionFactory factory = cfg.buildSessionFactory();
    Session session = factory.openSession();

    /* Selecting all objects(records) start_______________________ */



    Query qry = session.createQuery("from Product p");

    List l =qry.list();
    System.out.println("Total Number Of Records : "+l.size());
    Iterator it = l.iterator();

    while(it.hasNext())
    {
        Object o = (Object)it.next();
        Product p = (Product)o;
        System.out.println("Product id : "+p.getProductId());
        System.out.println("Product Name : "+p.getProName());
        System.out.println("Product Price : "+p.getPrice());
        System.out.println("----------------------");
    }       

    session.close();
    factory.close();

回答by Babu

With the Hibernate 5 the createCriteriais deprecated use something like this

使用 Hibernate 5createCriteria不推荐使用这样的东西

private static <T> List<T> loadAllData(Class<T> type, Session session) {
    CriteriaBuilder builder = session.getCriteriaBuilder();
    CriteriaQuery<T> criteria = builder.createQuery(type);
    criteria.from(type);
    List<T> data = session.createQuery(criteria).getResultList();
    return data;
  }

usage

用法

Session session = HibernateUtils.getSession();
List<User> users = loadAllData(User.class, session);

回答by Search Results Web results Pi

Since List<Entity> list = session.createCriteria(Entity.class).list();is depricated,

既然List<Entity> list = session.createCriteria(Entity.class).list();被贬低了,

You can use CriteriaBuilder().

您可以使用 CriteriaBuilder().

        try ( Session session = sessionFactory.openSession()) {
            // Create CriteriaBuilder
            CriteriaBuilder builder = session.getCriteriaBuilder();

            // Create CriteriaQuery
            CriteriaQuery<Entity> criteria = builder.createQuery(Entity.class);

            // Specify criteria root
            criteria.from(Entity.class);

            // Execute query
            List<Entity> entityList = session.createQuery(criteria).getResultList();

            for (Entity e : entityList) {
             // load the data
            }
        }

Click herefor the github example.

单击此处获取 github 示例。