具有外键的表的Hibernate事务锁

时间:2014-09-01 11:20:35

标签: mysql sql hibernate transactions

表1带有主键

table2具有对table1主键的外键引用

我想向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;

这里我的问题实际上是外键对于每个事务都是唯一的,意味着该值对每个客户都是唯一的。 我希望锁定其他值,例如座位数等,以便其他客户进入。 由于每个客户锁定的外键不同没有任何意义。

我如何在这里进行锁定。 ?

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

1 个答案:

答案 0 :(得分:0)

如果要阻止表2中的插入,可以在该表上使用唯一约束,如座位号+事件。如果其他人在您考虑的时候选择了这些项目,这将有效地使您的提交失败。 不是最好的用户友好策略。 你宁愿修复你的标签,不要让人们混淆java / hibernate。