次のシナリオがあります。
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 を使用しています。なぜそれが起こるのですか?明らかな何かが欠けていますか?
ありがとう