这是我的问题,我在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不可能批量插入。
如果可能的话,我想保留触发器,以使休眠状态每次插入时都不必调用数据库,并且能够进行批量插入。
编辑:我可能需要插入近一百万行