gpt4 book ai didi

java - 覆盖叶类中的 JPA 映射

转载 作者:太空宇宙 更新时间:2023-11-04 07:31:31 31 4
gpt4 key购买 nike

我正在使用 JPA 2,我的问题是关于 JPA 2 中的继承和覆盖映射。

我有一个抽象类 [AbstractCompte] 和两个叶子类 [Compte , CompteTmp]。

我想重新定义一个字段 nrCompte 的映射。

nrCompte 在 Compte 类中必须是唯一的。nrCompte 在 CompteTmp 类中不是唯一的。

我已经测试过将 @Column 放入 COmpte 和 CompteTmp 的 getter 方法中,但它不起作用,结果是 nrCompte 始终不唯一。

@MappedSuperclass
public abstract class AbstractCompte{
@Id
@GeneratedValue
private Long id;

private String nrCompte;
....
....
}

@Entity
public class CompteTmp extends AbstractCompte {

@Column(length=16, unique = false)
public String getNrCompte() {
return super.getNrCompte();
}
}

@Entity
public class Compte extends AbstractCompte {

@Column(length=16, unique = true)
public String getNrCompte() {
return super.getNrCompte();
}
}

预先感谢您的帮助。

最佳答案

JPA 优惠<a href="http://docs.oracle.com/javaee/6/api/javax/persistence/AttributeOverride.html" rel="noreferrer noopener nofollow">AttributeOverride</a> ,所以你可以像这样映射它:

@Entity
@AttributeOverride(name="nrCompte", column=@Column(unique=false))
public class CompteTmp extends AbstractCompte { ... }

@Entity
@AttributeOverride(name="nrCompte", column=@Column(unique=true))
public class Compte extends AbstractCompte { ... }

关于java - 覆盖叶类中的 JPA 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17612620/

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