带有序列的插入触发器上具有ID生成的Hibernate插入

时间:2019-04-26 22:20:44

标签: oracle hibernate jpa sequence batch-insert

这是我的问题,我在oracle数据库中有一个序列,在插入时有一个触发器,可以从序列中获取下一个值并将其作为id。使用像sql developer这样的工具,它可以完美地工作。

我的ID是在此定义的

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MY_SEQUENCE")
@SequenceGenerator(sequenceName = "MY_SEQUENCE", allocationSize = 1, name = "MY_SEQUENCE")
private BigInteger jobId;

问题是休眠状态,首先读取序列的下一个值,将其设置为id,然后将其持久化。然后,我的数据库用序列的下一个值更新我的ID,但是在我的.save(entity)之后,代码中的新ID并未“更新”。

我读到我应该使用GenerationType.IDENTITY,但是我想进行批量插入,并且我还读到IDENTITY不可能批量插入。

如果可能的话,我想保留触发器,以使休眠状态每次插入时都不必调用数据库,并且能够进行批量插入。

编辑:我可能需要插入近一百万行

0 个答案:

没有答案