gpt4 book ai didi

java - JPA - 从序列生成的 ID 始终为 0

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:32 26 4
gpt4 key购买 nike

我正在尝试使用 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 左右。

我哪里出错了?

最佳答案

我实际上解决了我的问题,但这恰好与我暴露的内容没有直接关系。

我试图保留的这个对象是一个相对复杂的对象的一部分,并且在父对象中我没有将 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);

关于java - JPA - 从序列生成的 ID 始终为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38128391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com