我對此有點困惑。當我嘗試創建一個沒有@Id的實體時,編譯時給我一個錯誤,我必須設置主鍵使用@Id,甚至不能將應用程序部署到應用程序服務器(我使用payara)。但是官方Java EE 7教程文檔中對實體類的要求不包含實體必須具有@Id的規則。並且,該文檔中的實體定義如下:爲什麼實體類必須有@Id?
通常,實體表示關係數據庫中的表,並且每個實體實例對應於該表中的一行。
但我可以創建一個沒有主鍵的數據表。
所以我的問題是,爲什麼我們必須在實體中設置@Id。還有其他的考慮嗎?例如,使用@Id來標識持久化上下文中的特定實體,以便我們可以使用em.find(id)?如果我堅持創建一個沒有@Id的實體,我該怎麼辦?
感謝您的幫助。
但是,當我運行該應用程序時,運行時也給了我錯誤.. lol。 – MarcuX
@MarcuX你什麼時候得到錯誤?當你將實體存儲在數據庫中時?如果是這樣,你是否真的將另一個屬性定義爲主鍵? – Chrotenise
正當我在payara服務器上部署應用程序 – MarcuX