mysql - Hibernate事务锁具有外键的表

标签 mysql sql hibernate transactions

带有主键的表1

表2具有对表1主键的外键引用

我想向table2插入多条记录

像下面的代码

begin hibernate transaction;

OBJ1 = insert table1 object.

loop:

set table2 object with foreignkey OBJ1 and with some other values;

Lock  this object (sothat nobody can insert these values into table2)

loop ends;

commit transaction;

这里我的问题实际上是外键对于每笔交易都是唯一的,这意味着该值对于每个客户来说都是唯一的。 我想锁定其他值,例如座位号等,防止其他客户进入。 由于每个客户的外键都不同,因此锁定没有任何意义。

我怎样才能在这里锁定。 ?

我不会向她发布代码,因为我没有编写代码,我想在开始编码之前计划如何做到这一点。 请帮忙。

最佳答案

如果您想防止在表 2 中插入,您可以在该表上使用唯一约束,例如座位号 + 事件。如果其他人在您思考时选择了这些项目,那么您的提交实际上会失败。 不是最好的用户友好策略。 您宁愿修复您的标签,以免人们与 java/hibernate 混淆。

关于mysql - Hibernate事务锁具有外键的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25604691/

相关文章:

mysql - mysql中选择多条件要求的行

mysql - 如何获取大表中匹配字符串的数量

sql - 在 SQL UNION 之后替换 NULL 列

sql - 从 sql server 2005 发送关于 @@error 的 dbmail

java - Hibernate和Spring3事务管理注解-配置问题: Hibernate-Exception: No Hibernate Session bound to thread

java - hibernate jpa 应用程序每次我想运行它时都会挂起

MySQL查询获取天数指定日期范围内的数据

mysql - 多个查询需要合并结果 phpMyAdmin

java - (Enterprise GlassFish v3 build 11) 通信链路问题 (MySQL DB)

java - Hibernate BeanCreationException 异常