List <Student> st = session.createQuery ("select ids from students where a = :a")
.setString("a", value)
.list();
//Errors out saying that ArrayList is an unknown entity
session.lock(st, LockMode.UPGRADE);
学生本身扩展了可序列化。如何在Hibernate中锁定可序列化的数组列表?
最佳答案
您需要浏览列表并一一锁定实体。
for(Student s : st) {
session.lock(s, LockMode.UPGRADE);
}
注意:不赞成使用Session#lock(java.lang.Object, org.hibernate.LockMode),而建议使用session.buildLockRequest(LockMode.UPGRADE).lock(student)
更新:
您也可以通过Query.setLockMode(java.lang.String, org.hibernate.LockMode)直接锁定在查询上。