7
我們有一組接口,用作API,並從其他模塊引用。 這些接口的一組具體實現,專用於「主」應用程序模塊。這些類包含許多註釋(JPA以及用於XML序列化的XStream)。休眠和JPA - 錯誤映射通過接口公開的嵌入式類
我遇到了問題。我們有一個用戶類,其中有許多與位置有關的字段。我們想將這些轉換爲Address類。我們希望數據(現在)保留在同一個表中。該方法是嵌入式類。
問題是類型簽名只能引用其他接口來滿足它們實現的接口。
當我嘗試堅持一個UserImpl,我得到異常:
org.hibernate.MappingException:難道 無法確定類型: com.example.Address,在表:用戶, 爲列: [org.hibernate.mapping.Column(地址)]
示例代碼:
interface User {
int getId();
String getName();
Address getAddress();
}
@Entity
class UserImpl implements User {
int id;
String name;
Address address;
int getId() {
return id;
}
void setId(int id) {
this.id = id;
}
String getName() {
return name;
}
String setName(String name) {
this.name = name;
}
@Embedded
Address getAddress() {
return address;
}
void setAddress(Address address) {
this.address = address;
}
}
interface Address {
String getStreet();
String getCity();
String getState();
String getZip();
String getCountry();
}
@Embeddable
class AddressImpl implements Address {
String street;
String city;
String state;
String zip;
String country;
public String getStreet() {
return street;
}
public String getCity() {
return city;
}
public String getState() {
return state;
}
//... etc
}
謝謝,這確實是一個解決方案,雖然我希望這可以通過使用僅JPA來完成。可能有助於瞭解其他JPA實現是否可行。 – 2009-07-02 13:05:51