我有一個包含字符串類型主鍵的實體。該實體模型如下:@Entitypublic class MyEntity {@Id@Column(name="PR_KEY", unique=true)private String prKey;........}但是我面臨說TypeMismatch的問題。org.hibernate.TypeMismatchException: Provided id of the wrong type. Expected: class java.lang.String, got class java.lang.Long
3 回答

達令說
TA貢獻1821條經驗 獲得超6個贊
檢查數據庫表中的PR_KEY數據類型。如果列的類型為Number,并且您嘗試將其映射到實體中的String,則可能會出現此問題。
同樣適用于帶有生成的ID的庫倫。

FFIVE
TA貢獻1797條經驗 獲得超6個贊
如果將String用作ID,則通過Session / EntityManager查找實體時也應使用相同的類型:
而不是提供Long:
Long key = 1L;
MyEntity me = session.get(MyEntity.class, key);
//or
MyEntity me = entityManager.find(MyEntity.class, key);
字符串應為:
String key = "1";
MyEntity me = session.get(MyEntity.class, key);
//or
MyEntity me = entityManager.find(MyEntity.class, key);
添加回答
舉報
0/150
提交
取消