作者:手机用户2502915433 | 来源:互联网 | 2023-05-17 13:41
代码很简单,如下:
private static SessionFactory sf = null;
@SuppressWarnings("unchecked")
@Override
public List
findAllDetails() throws DAOException {
sf = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = sf.getCurrentSession();
session.beginTransaction();
Query query = session.createQuery("from DetailAccount");
List details = query.list();
session.getTransaction().commit();
return details;
}
在执行List details = query.list()的时候,details的size=0,查询不到数据;
但是在控制台打印出hibernate生成的sql,放到数据库中去执行,能查到数据,生成的sql如下:
select
detailacco0_.id as id4_,
detailacco0_.amount as amount4_,
detailacco0_.category as category4_,
detailacco0_.note as note4_,
detailacco0_.occurDate as occurDate4_
from detailaccount detailacco0_;
3 个解决方案
感觉不应该啊,你连的是同一个库么?你数据库中有几条记录?这几条记录确定已经commit了?
你用hiberate的sql语句查询看看,吧你直接用数据库查询的放到你hibernate里面看看,如果不行说明你数据库连错了了吧