Java 从另一个系统更新JPA TableGenerator

Java 从另一个系统更新JPA TableGenerator,java,jakarta-ee,jpa,Java,Jakarta Ee,Jpa,我有一个表,它有一个主键,主键是由表生成器生成的: @TableGenerator(name=“resourceIdGenerator”,table=“SEQUENCE”,pkColumnName=“name”,pkColumnValue=“resource\u type\u id”,valueColumnName=“NEXTID”,allocationSize=1) 而且效果很好 但是,我有另一个系统(非java),它通过在同一个表中插入新记录来不时修改该表。我想知道是否可以从另一个不使用JP

我有一个表,它有一个主键,主键是由表生成器生成的:

@TableGenerator(name=“resourceIdGenerator”,table=“SEQUENCE”,pkColumnName=“name”,pkColumnValue=“resource\u type\u id”,valueColumnName=“NEXTID”,allocationSize=1) 而且效果很好


但是,我有另一个系统(非java),它通过在同一个表中插入新记录来不时修改该表。我想知道是否可以从另一个不使用JPA的系统更新我的这个表生成器的值?或者JPA自己维护它,并且它是唯一一个管理tablegenerator表的人?

JPA不能神奇地使用一个表,并且禁止任何其他人使用它。如果您在另一个系统中使用与Hibernate用于生成ID的策略相同的策略,那么它没有理由不起作用


由于分配大小为1,您可能只需要启动一个新事务,
为更新选择序列表的相应行,获取其值并将其递增1

如果我错了,请纠正我,但是tableGenerator与数据库中插入的记录无关,它只是生成表。是的,这正是我所做的,但我真的希望JPA以某种神奇的方式使用tableGenerator,并在有人试图插入表时相应地更新它,如果没有,我必须关心密钥的增量。我甚至尝试搜索数据库中是否没有JPA存储的存储过程并使用它们,但是没有。但是我现在正在考虑创建这样的存储过程来增加密钥。这种策略效率极低,并且会导致并发问题。它需要在每次插入时从实体表中获取max ID。序列表将不再有任何用途。