Java 如何重写@MappedSuperclass子类中的参数
我有一个映射超类Java 如何重写@MappedSuperclass子类中的参数,java,hibernate,mappedsuperclass,Java,Hibernate,Mappedsuperclass,我有一个映射超类 @MappedSuperclass public class A{ . . . @Column(name="something") public getSomething(){..}; public setSomething(){..}; } 我想重写子类中的something @Entity public class B{ @Override public getSomething(){..}; } 但是获取
@MappedSuperclass
public class A{
.
.
.
@Column(name="something")
public getSomething(){..};
public setSomething(){..};
}
我想重写子类中的something
@Entity
public class B{
@Override
public getSomething(){..};
}
但是获取的原因是:org.hibernate.MappingException:找到的数据的重复属性映射
异常
我尝试了不同的方法,比如“@AttributeOverride”注释,但没有效果
我知道的唯一解决方案是在mappedSuperclass中使
某些东西
暂时化。但我不希望它在这里是暂时的(因为还有另一个子类不想覆盖某个东西,但希望它是暂时的)我想到了两个解决方案:一个是可能打破这个超类并使用Emmbeddeds创建您想要的层次结构。但是,如果您想坚持这种方法,我认为您需要在子类中同时使用以下属性和方法进行重写:
@Entity
public class B {
@AttributeOverride(name = "fred", column = @Column(name = "FRED"))
private Integer fred;
@Override
public Integer getFred() {return fred;}
}