我正在寻找 Hibernate Spring 代码来插入、删除更新和选择数据。在阅读本教程时,我不明白如何在 Hibernate 中获取、更新、插入数据等。我从这里得到了教程http://mkyong.com/hibernate/hibernate-criteria-examples
public static List getStockDailyRecordCriteria(Date startDate,Date endDate,
Long volume,Session session){
Criteria criteria = session.createCriteria(StockDailyRecord.class);
if(startDate!=null){
criteria.add(Expression.ge("date",startDate));
}
if(endDate!=null){
criteria.add(Expression.le("date",endDate));
}
if(volume!=null){
criteria.add(Expression.ge("volume",volume));
}
criteria.addOrder(Order.asc("date"));
return criteria.list();
}
这里好像是选择数据,但是没有SELECT查询。我们如何知道它正在从数据库中检索数据?
我也从这里得到了这个代码http://codejava.net/frameworks/spring/spring-4-and-hibernate-4-integration-tutorial-part-1-xml-configuration这似乎获取了数据,但我不明白表名和使用的查询在哪里?
@Override
@Transactional
public List<User> list() {
@SuppressWarnings("unchecked")
List<User> listUser = (List<User>) sessionFactory.getCurrentSession()
.createCriteria(User.class)
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
return listUser;
}
如何在数据库中更新、删除、插入数据? 如何使用 WHERE、ORDER BY、GROUP BY、HAVING、COUNT 等条件来获取、删除、更新、插入数据?
最佳答案
假设 StockDailyRecord 类映射到数据库中的表 stockdailyrecord。
Criteria criteria = session.createCriteria(StockDailyRecord.class);
这里就像一个 select 语句,这个 Criteria 充当 select * from stockdailyrecord
然后在此条件中添加一些条件
criteria.add(Expression.ge("date",startDate));
这里就像 date >= startDate
criteria.add(Expression.le("date",endDate));
这里就像日期 <= endDate
criteria.addOrder(Order.asc("date"));
按升序对记录进行排序 ORDERBY criteria.addOrder 、 GROUP BY criteria.add(Projections.groupProperty("someColumn"))、COUNT criteria.add(Projections.count("someColumn") ))
参见this链接会有帮助
关于java - Hibernate - 如何使用 CLAUSES 进行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31958365/