Java 如何从嵌入的列重写属性是超类
我试图覆盖实体超类中存在的嵌入列的属性 我的实体如下所示:Java 如何从嵌入的列重写属性是超类,java,hibernate,Java,Hibernate,我试图覆盖实体超类中存在的嵌入列的属性 我的实体如下所示: @Embeddable public class Key { @Column private String a, @Column private String b } @MappedSuperclass public abstract class Superclass { @EmbeddedId private Key key; } @Entity @Table(name = "m
@Embeddable
public class Key {
@Column
private String a,
@Column
private String b
}
@MappedSuperclass
public abstract class Superclass {
@EmbeddedId
private Key key;
}
@Entity
@Table(name = "my_entity")
@AttributeOverride(name = "b", column = @Column(name="renamed_b"))
public class MyEntity extends Superclass {
}
我试过在MyEntity上使用,但没有任何效果
如果我移动嵌入字段上的AttributeOverride注释,它会起作用,但是我不能修改超类
有什么解决方案吗?仔细阅读文档: 要在多个嵌入级别覆盖映射,请使用点(“.”) 必须在name元素中使用符号形式来表示 嵌入属性中的属性 名称
“b”
不正确。
您应该使用“key.b”
@实体
@表(name=“我的实体”)
@AttributeOverride(name=“key.b”,column=@column(name=“重命名的_b”))
公共类MyEntity扩展了超类
}