我使用hibernate自动生成表的ID,但我需要手动插入一些行(约10K,只是一次)与另一个表有关。我正在使用Oracle DB。我怎样才能做到这一点? hibernate generete值如何?有可能使用它?手动插入时使用休眠@GeneratedValue
@Id
@GeneratedValue
private Long id;
我使用hibernate自动生成表的ID,但我需要手动插入一些行(约10K,只是一次)与另一个表有关。我正在使用Oracle DB。我怎样才能做到这一点? hibernate generete值如何?有可能使用它?手动插入时使用休眠@GeneratedValue
@Id
@GeneratedValue
private Long id;
当然,这是可能的,我们一直在这样做。是否以及如何取决于您使用的id生成策略以及数据库的设置方式。
我们使用(定制的)表生成器生成积极的ID,所以无论何时我们需要手动插入使用负面ID的元素。这样,这些ID不会干扰Hibernate的ID生成,我们可以立即识别手动插入的行。
如果您不喜欢负面的ID,您可以使用不同的生成策略,例如,
请参阅@GeneratedValue仅在您调用hibernate API时才有效。
要使用Autoincrement值,我们不需要hibernate @GeneratedValue功能。
您可以启用自动从数据库本身生成。标记一列自动生成。
参考:
https://chartio.com/resources/tutorials/how-to-define-an-auto-increment-primary-key-in-oracle/
虽然将不包括在批量插入查询对标记为自动递增列的列名和值。
好吧,我现在看到,我发现hibernate使用HIBERNATE_SEQUENCE,所以我有两个选择: - 使用HIBERNATE_SEQUENCE - 插入负号ID 我想我会使用HIBERNATE_SEQUENCE,因为我们需要插入大约10k行。谢谢! – user2061066