我的表有一个用表生成器生成的主键:
@TableGenerator(name =“resourceIdGenerator”,table =“SEQUENCE”,pkColumnName =“NAME”,pkColumnValue =“resource_type_id”,valueColumnName =“NEXTID”,allocationSize = 1) 它工作正常。
但是,我有另一个系统(非java)通过在其中插入新记录来不时修改同一个表。我想知道是否可以从另一个不使用JPA的系统更新我的这个表生成器的值?或者JPA自己维护它,它是管理tablegenerator表的唯一一个?
答案 0 :(得分:1)
JPA不能神奇地使用表格并禁止其他人使用它。如果您在其他系统中使用的策略与Hibernate用于生成ID的策略相同,那么它就没有理由不起作用。
由于分配大小为1,您可能只需要启动一个新事务,select for update
序列表的相应行,获取其值并将其递增1.