我在使用Oracle XE數據庫的項目中遇到了GeneratedValue批註問題。該值根本不會生成 - 嘗試在自動生成的字段中插入表中的行時,我不斷收到錯誤。使用oracle和hibernate生成的值不起作用
"Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into ("SYSTEM"."T_VAPP"."VAPPID")"
完全相同的代碼與德比或MySQL,但我需要使它與Oracle合作,它似乎忽略了什麼,我把生成的字段定義。我嘗試使用GenerationType.TABLE,GenerationType.SEQUENCE,但同樣的錯誤仍然存在。我還使用Oracle SQL開發人員驗證過代碼中定義的序列沒有被創建。我在這裏錯過什麼?
@Entity
@Table(name = "T_vApp")
@RooJavaBean
@RooToString
@RooJpaActiveRecord(identifierColumn = "vAppId", identifierField = "id", table = "T_vApp")
public class VLabApplication {
@Id
@GeneratedValue(strategy=GenerationType.AUTO, generator="my_entity_seq_gen")
@SequenceGenerator(name="my_entity_seq_gen", sequenceName="MY_ENTITY_SEQ")
@Column(name = "vAppId")
private Long id;
AUTO for oracle將選擇序列生成器(這就是爲什麼它被稱爲'AUTO';))。 – ishi
謝謝,我實際上嘗試了AUTO和SEQUENCE ... –