我正在尝试使用JPA从我的数据库中的序列生成ID(Oracle 9i)
根据我在这里和那里找到的,这里是我在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。
我哪里出错了?
答案 0 :(得分:0)
我实际上解决了我的问题,这个问题与我曝光的事情没有直接关系。
我试图坚持的这个对象是一个相对复杂的对象的一部分,在父对象中我没有将一个CascadeType添加到JPA映射注释中:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "dossier")
private Set<Procedurenormale> proceduresNormales = new HashSet<>(0);
将此注释更改为以下内容解决了该问题:
@OneToMany(fetch = FetchType.LAZY, mappedBy = "dossier", cascade = CascadeType.ALL)
private Set<Procedurenormale> proceduresNormales = new HashSet<>(0);