【发布时间】:2019-10-24 14:57:46
【问题描述】:
我正在尝试使用 Hibernate 实现他的 Java 代码以进行 SQL 查询:
public List<AttendeeModel> getListOfCds(int firstRow, int rowCount) {
List<AttendeeModel> cdList = null;
try {
session.beginTransaction();
Criteria criteria = session.createCriteria(AttendeeModel.class);
criteria.setFirstResult(firstRow);
criteria.setMaxResults(rowCount);
if (criteria != null) {
cdList = (List<AttendeeModel>) criteria.list();
}
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
return cdList;
}
public int countRows() {
try {
session.beginTransaction();
Criteria criteria = session.createCriteria(AttendeeModel.class);
if (criteria != null) {
return criteria.list().size();
}
session.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}
return 0;
}
但由于某种原因,我收到此错误:
java.lang.IllegalStateException: Session/EntityManager is closed
你知道我该如何解决这个问题吗?
【问题讨论】:
-
在哪个语句抛出异常?
-
...在
countRows()中,如果criteria != null,事务保持打开状态,这是有意的吗? -
我从教程中复制了代码。我不知道。