0

次のシナリオがあります。

person person
|-- Address myAddress
|-- Address secondaryAddress

ここで、
Address
|-- Zip myZip
|-- Zip mySecondaryZip
|-- String name

Zip
|-- Country myCountry
|-- String zipCode

Country
|-- String description;

Address、Zip、Country クラスは @Embeddable() で宣言されます。Person は @Entity です。

myAddress には、次の JPA アノテーションがあります。

    @Embedded()
@AttributeOverrides({ @AttributeOverride(column = @Column(name = "myaddress_name"), name = "name"),
        @AttributeOverride(column = @Column(name = "myaddress_myzip_zipcode"), name = "myZip.zipCode"),
        @AttributeOverride(column = @Column(name = "myaddress_myzip_mycountry_description"), name = "myZip.myCountry.description"),
        @AttributeOverride(column = @Column(name = "myaddress_mysecondaryzip_zipcode"), name = "mySecondaryZip.zipCode"),
        @AttributeOverride(column = @Column(name = "myaddress_mysecondaryzip_mycountry_description"), name = "mySecondaryZip.myCountry.description") })
private Address myAddress = null;

eclipseLink と postgresql を列として db として使用:

myaddress_myzip_zipcode
myaddress_myzip_mycountry_description

person テーブルには作成されません。その他は正しく作成されています。JPA 2.0 と postgresql 9.2 を使用しています。なぜそれが起こるのですか?明らかな何かが欠けていますか?

ありがとう

4

1 に答える 1

1

3 レベルのネスティングに問題があるようです。

最新のリリースを使用し、それでも動作しない場合はバグを記録してください。

于 2013-01-30T14:20:38.793 に答える