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
How to get all data in the table with hibernate?
提问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 createCriteria
is 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 示例。