我在使用JPA的實現一對多的關係的一個嚴重的問題,我在尋找一個合理的解決方法。問題是JPA看起來很迷茫,它讀@OneToMany註釋並返回:OpenJPA的治療領域具有一對多映射爲BLOB
「Flea.dog」聲明與預期類型「blob」不兼容的列。
Flea.dog是一個數字字段。這個問題似乎是一個已知的錯誤: https://issues.apache.org/jira/browse/OPENJPA-1481
該問題創建如下:我有兩個實體狗和跳蚤,狗有跳蚤表中的dog_id代表許多跳蚤。這些實體被映射到具有不同名稱的表格Dog被映射到Madra,Flea被映射到feithidi。
的表如下所示:
CREATE TABLE madra (dogid BIGINT, name varchar(255), PRIMARY KEY (dogid));
CREATE TABLE feithidi (fleaid BIGINT, dogid BIGINT, PRIMARY KEY (fleaid));
我使用H2的例子,雖然我已經在Oracle同樣的問題。
的實體如下:
@Entity(name="feithidi")
Flea{
@Id
long fleaid;
@ManyToOne
@JoinColumn(name="dogid", insertable=false, updatable=false, nullable=true)
private Dog dog;
}
和
@Entity(name="madra")
Dog{
@Id
long dogid;
String name;
@OneToMany(mappedBy="dog")
private Set<Flea> fleas;
}
完整例外,我現在回到是:
(org.apache.openjpa.persistence.ArgumentException: 「Flea.dog」聲明一欄,是不是與預期的類型「斑點」兼容。
如果周圍的人有工作,也可以看到在我的部分明顯的錯誤,我會爲一些反饋表示感謝。
OpenJPA的是不是JPA的唯一實現。你可以嘗試另一個免費的,比如[EclipseLink](http://www.eclipse.org/eclipselink/),看看它是否有同樣的問題。 – Powerlord 2011-03-29 14:30:32
我很想,但是我的僱主要求OpenJPA。我知道這在hibernate中工作正常,我會假設EclipseLink – Lindalinian 2011-04-07 11:49:11