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

Java 如何使用hibernate获取表中的所有数据?,java,spring,hibernate,jsp,Java,Spring,Hibernate,Jsp,get方法是获取一个。 我想获取jsp页面的所有数据。尝试以下方法从表中获取所有行 public Service getServiceData(){ return (Service)ServiceDaoImpl.getSession().get(Service.class, new Integer(1)); } @SuppressWarnings(“未选中”) 公共列表服务getServiceData(){ 返回ServiceDaoImpl.getSession().createQue

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

尝试以下方法从表中获取所有行

public Service getServiceData(){
    return (Service)ServiceDaoImpl.getSession().get(Service.class, new Integer(1));
}
@SuppressWarnings(“未选中”)
公共列表服务getServiceData(){
返回ServiceDaoImpl.getSession().createQuery(“来自服务”).list();
}

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

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

         return ServiceDaoImpl.getSession().createQuery("from Service").list(); 
    }
@SuppressWarnings(“未选中”)
公共列表getAlldata(){
尝试
{
返回sessionFactory.getCurrentSession().createCriteria(Entity.class).list();
}捕获(例外e){
返回新的ArrayList();
}
}
公共列表getServiceAll(){
返回ServiceDaoImpl.getSession().createCriteria(Service.class.list());
}

Configuration cfg=新配置(); configure(“hibernate.cfg.xml”)


对于Hibernate 5,不推荐使用
createCriteria
,请使用以下内容

    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();
私有静态列表loadAllData(类类型,会话){
CriteriaBuilder=session.getCriteriaBuilder();
CriteriaQuery criteria=builder.createQuery(类型);
标准。来源(类型);
List data=session.createQuery(条件).getResultList();
返回数据;
}
用法

Session Session=HibernateUtils.getSession();
List users=loadAllData(User.class,session);
因为
List List=session.createCriteria(Entity.class.List()
不赞成,

您可以使用
CriteriaBuilder()

try(Session Session=sessionFactory.openSession()){
//创建标准生成器
CriteriaBuilder=session.getCriteriaBuilder();
//创建标准查询
CriteriaQuery criteria=builder.createQuery(Entity.class);
//指定条件根
标准。来源(实体。类别);
//执行查询
List entityList=session.createQuery(条件).getResultList();
对于(实体e:entityList){
//加载数据
}
}

单击查看github示例。

您可以根据问题向我显示链接或示例吗?
ServiceDaoImpl.getSession().createQuery(“来自服务”).list()
。此外,查询还可以是
从服务S中选择S
。两个查询都正确。您可以删除
session.close()@Transactional
或xml的spring事务管理,则代码>也是。错误:类型不匹配:无法从服务转换为列表此方法在调用use List List=ServiceDaoImpl.getServiceData()的方法处返回列表迭代这个列表您返回的是实体,但您的方法签名声明您的函数将返回一个列表,因为它不会编译。我认为您的意思是“返回列表”;从createQuery(“从产品p”)中更好;对于Hibernate 5,不推荐使用
createCriteria
。使用@Babu的解决方案。这个通用方法写得很好
public List<Service> getServiceAll(){
     return ServiceDaoImpl.getSession().createCriteria(Service.class).list();
}
    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();
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;
  }
Session session = HibernateUtils.getSession();
List<User> users = loadAllData(User.class, session);
        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
            }
        }