我在SpringBoot项目(Hibernate 5)中试验了Hibernate的@GenericGenerator。使用这个生成器,我可以通过JPA非常快速地插入实体(我有一个Spring Repository,由@Service提供服务),这很酷,但是序列实际上是如何存储的呢?我的数据库当前是一个SQL Server 2016实例,在模式中,我可以看到我有一个dbo.hibernate_seq
我需要帮助在Oracle DB表中持久化一个实体,该表使用PK的触发器和序列。它找到PK的最大值,并在1中增加值。但是,这不会更新Db序列,在某个点造成“违反约束”错误。可悲的是,Db序列无法访问,当它试图在内部运行“从dual中选择MY_DB_SEQ.nextval”时会导致错误。为什么不能访问呢?去问DB管理员:)
看起来,我唯一的选择是在实体PK属性中传递null,这样DB触发器(当ID为null时使用a DB