Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从嵌入的列重写属性是超类_Java_Hibernate - Fatal编程技术网

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扩展了超类
}