我在使用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 ... –