gpt4 book ai didi

java - 如何覆盖@MappedSuperclass 的子类中的参数

转载 作者:行者123 更新时间:2023-12-04 03:45:55 25 4
gpt4 key购买 nike

我有一个映射父类(super class)

@MappedSuperclass
public class A{
.
.
.
@Column(name="something")
public getSomething(){..};
public setSomething(){..};
}

我想覆盖子类中的东西

@Entity
public class B{
@Override
public getSomething(){..};
}

但得到 Caused by: org.hibernate.MappingException: Duplicate property mapping of data found 异常

我尝试了不同的东西,比如“@AttributeOverride”注释,但没有用。

我知道的唯一解决方案是在 mappedSuperclass 中使 something transient 。但我不希望它在这里是 transient 的(因为还有另一个子类不想覆盖 something 但希望它是 transient 的)

最佳答案

我想到了两个解决方案:一个是可能将这个 SuperClass 分解并使用 Embeddeds 来创建您想要的层次结构。如果你想坚持使用这种方法,我认为你需要使用 @AttributeOverride 覆盖子类中的属性和方法都是这样的:

@Entity
public class B {

@AttributeOverride(name = "fred", column = @Column(name = "FRED"))
private Integer fred;

@Override
public Integer getFred() {return fred;}
}

关于java - 如何覆盖@MappedSuperclass 的子类中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092204/

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