我使用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