0

すでに要素が埋め込まれている Embeddable と表記された要素のネストを実現したいと思います。

@Embeddable
public class A implements Serializable {

private int a;
private int b;
}

@Embeddable
public class B implements Serializable {

@Embedded
protected A sum;
@Embedded
protected A value;

... }

@Entity
public class C implements Serializable{
@Embedded
@AttributeOverrides({
    @AttributeOverride(name = "sum.a", column =
    @Column(name = "SUM_COL_A", precision = 12, scale = 2, nullable = false)),
    @AttributeOverride(name = "sum.b", column =
    @Column(name = "SUM_COL_B", precision = 12, scale = 2, nullable = false)),
    @AttributeOverride(name = "value.a", column =
    @Column(name = "VALUE_COL_A", precision = 12, scale = 2, nullable = false)),
    @AttributeOverride(name = "value.b", column =
    @Column(name = "VALUE_COL_B", precision = 12, scale = 2, nullable = false))
private B property;
})
}

実行後、2 つの列 (VALUE_COL_A と VALUE_COL_B) が作成されましたが、最初の 2 つの列はまったく存在しません。

私は何が欠けていますか?ありがとうございました

4

2 に答える 2

1

あなたのコードは正しいようです。永続化プロバイダーのバグである可能性があります。最新のリリース/パッチを使用しているかどうかを確認するか、バグを記録してください。

于 2012-10-17T14:10:36.627 に答える
0

私の理解では、 B プロパティはシリアル化されており、サブ埋め込みオブジェクトはありません。したがって、B のすべての内容を含む 1 つの列のみが存在するはずです。埋め込まれた B オブジェクトの属性を検索することはできません。参考までに。

于 2012-10-17T14:15:31.720 に答える