我要地圖在JPA的地圖,但我得到一個例外: 我的Java代碼看起來像這樣:JPA:地圖一個地圖<枚舉,實體>
Issue.java:
@ElementCollection
@CollectionTable(
name="ISSUE_EMPLOYEE",
[email protected](name="ISSUE_ID", referencedColumnName="ID")
)
@MapKeyColumn(name="EMPLOYEEPOSITION_ID")
@MapKeyConvert("myEnumConverter")
@JoinColumn(name="EMPLOYEE_ID")
private Map<EmployeePosition, Employee> namedEmployees = new Hashtable<EmployeePosition, Employee>();
EmployeePosition
是Enum
和Employee
是Entity
。
我得到這個異常:
內部異常:值java.sql.SQLException:ORA-00904: 「僱員」:無效的標識符
錯誤代碼:904 電話:INSERT INTO ISSUE_EMPLOYEE(ISSUE_ID ,僱員,EMPLOYEEPOSITION_ID)VALUES(?,?,?) 綁定=> [27,[B @ 18b85d,SERVICE]
它似乎忽略@JoinColumn
註解和試圖插件在數據庫中刪除對象。 我的映射有什麼問題/是否有可能匹配這樣的實體?
我試過了你的註釋。我做了joinTable-Annotation,像這樣:'@JoinTable(name =「ISSUE_EMPLOYEE」,joinColumns = @ JoinColumn(name =「ISSUE_ID」,referencedColumnName =「ID」), inverseJoinColumns = @ JoinColumn(name =「EMPLOYEE_ID」) ) ' 它現在執行此插入語句: 「調用:INSERT INTO ISSUE_EMPLOYEE(EMPLOYEE_ID,ISSUE_ID)VALUES(?,?)」 因此它不會插入EmployeePosition ...任何想法? – Lodger 2011-02-10 11:43:43