java JPA从序列生成的Id始终为0
我正在尝试使用JPA从数据库(Oracle 9i)中的序列生成ID
根据我在各处找到的信息,以下是我在ID变量上设置的注释组:
@Id
@SequenceGenerator(name="PROCEDURENORMALE_SEQ_GEN", sequenceName = "PROCEDURENORMALE_SEQ")
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "PROCEDURENORMALE_SEQ_GEN")
@Column(name = "IDPROCEDURENORMALE", unique = true, nullable = false, precision = 10, scale = 0)
private long idProcedureNormale;
然而,每当我创建一个新对象时,这个id总是设置为0,因此我不能持久化数据。我尝试将策略从GenerationType.SEQUENCE
更改为GenerationType.AUTO
,没有任何更改。对于这个特定的表,序列号应该是8300左右
我哪里出错了
# 1 楼答案
事实上,我解决了我的问题,这与我揭露的事情没有直接关系
我试图持久化的这个对象是一个相对复杂的对象的一部分,在父对象中,我没有向JPA映射注释添加级联类型:
将此注释更改为以下内容解决了此问题: