我有一個數據庫表有三個字段:其中兩個是表的組合鍵,另一個是自動生成的字段不是表的ID。將此表映射到JPA實體時,是否可以將自動生成的字段映射爲@Id,即使它不是?如果是,那會有什麼影響?注意:我無法更改數據庫。當數據庫中的id不是數據庫時,可以映射字段@Id嗎?
1
A
回答
0
你不應該 - @Id有特殊的含義,並且會被hibernate用作主鍵。
@GeneratedValue註釋僅在@Id也存在的情況下有效,所以您不能在非ID字段中使用該註釋。更多詳情here - 根據你正在使用的數據庫有可能的選擇。
1
是的,你可以。實際上,當Hibernate實體映射到在多個實際表(和其他視圖)上定義的數據庫視圖時通常是這種情況。
如果您不打算通過Hibernate創建該實體的新實例,那麼就沒有任何影響(如果該鍵真的是唯一的話)。
如果您將使用Hibernate持久化新實例,那麼一定要選擇適當的標識符生成策略。
相關問題
- 1. 數據庫驅動的字段(域ID)
- 2. 查找數據庫DDL映射字段
- 3. 搜索數據庫ID字段
- 4. 數據庫映射庫
- 5. 我們可以在Entity Framework中映射數據庫視圖嗎?
- 6. 中繼是否需要數據庫中的id字段?
- 7. 我應該在ViewState中存儲數據庫ID字段嗎?
- 8. 刪除數據後在數據庫中使用id字段
- 9. SilverStripe中的數據庫表/字段映射,集成附加數據庫
- 10. 將時區id存儲在數據庫中安全嗎?還是可以改變?
- 11. 想要從數據庫中獲取ID列表(這些ID不是SQLite數據庫中的自動分配ID)
- 12. 刪除SQLite數據庫中的項目,而不id字段
- 13. 春天數據MongoDB的 「ID」 字段映射
- 14. 我可以將sequelize實體映射到數據庫視圖嗎?
- 15. 我可以將數據庫列描述映射到DisplayNameAttribute嗎?
- 16. OpenJPA可以用來反轉映射數據庫視圖嗎?
- 17. Nhibernate可以自動從數據庫生成映射文件嗎?
- 18. 當id是字母時選擇數據 - 不是數字
- 19. 映射器從數據庫獲取數據不好嗎?
- 20. 在編輯過程中,數據庫中的實體ID映射不正確
- 21. 映射線程ID入庫
- 22. Hibernate/JPA Parent-Child - Parent equals()/ hashCode()可以使用數據庫ID嗎?
- 23. 將Facebook好友ID映射到實時數據庫中的Firebase uid
- 24. NHibernate遺留數據庫映射不可能嗎?
- 25. 當id不在數據庫中時Session.load返回InvocationException
- 26. MYSQL數據庫ID的
- 27. MySQL數據庫ID的
- 28. 店鋪ID的數據庫
- 29. Java數據庫與映射?
- 30. ModX Revo:數據庫映射
我不確定你是否可以,但我相信你不應該。你的映射必須反映你的數據庫。 – AndreDuarte