java - Hibernate 锁定项目的数组列表

标签 java hibernate

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); 

Students本身扩展了Serializable。如何在 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) 直接锁定查询.

关于java - Hibernate 锁定项目的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7114100/

相关文章:

java - Android Studio 拒绝运行 main()

java - 使用表达式从映射中获取第一个值

oracle - 在只读同义词上禁用 hibernate 自动更新

java - pom.xml 从 https ://start. spring.io/下载后显示错误

java - 使用投影从子表中获取特定列

mysql - 为什么参数绑定(bind)在 order by 或 select 语句中不起作用?

java - 查找 log4j 日志记录语句的来源/起源?

java - 检查渲染是否离屏?

java - 按钮单击 java 中的 showMessage

java - Spring Hibernate 发现了不止一行具有给定外键的行