我使用hibernate为表自动生成ID,但我需要手动插入与另一个表相关的一些行(大约10k,只需一次)。我使用的是Oracle DB。我怎样才能做到这一点? hibernate如何生成值?有可能使用它吗?
@Id
@GeneratedValue
private Long id;
答案 0 :(得分:2)
当然可能,我们一直这样做。是否以及如何取决于您使用的ID生成策略以及数据库的设置方式。
我们正在使用生成正ID的(自定义)表生成器,因此每当我们需要手动插入元素时,我们都会使用负id。这样那些ID不会干扰Hibernate的id生成,我们能够立即识别手动插入的行。
如果你不喜欢负面的ids,你可以使用不同的一代策略,例如
答案 1 :(得分:0)
请参阅@GeneratedValue仅在您调用hibernate API时才有效。
要使用自动增量值,我们不需要hibernate @GeneratedValue功能。
您可以启用自动从数据库本身生成。标记列自动生成。
参考:
插入时,请不要在批量插入包含列名称和值的情况下插入标记为自动增量的列。