可以說有一個實體Student與一個實體主體有一對多的關係,這個主體被延遲加載。 @OneToMany註釋用於指定關係。我想了解hibernate的內部工作原理如何處理這個註釋。hibernate關係註釋(@OneToOne,@OneToMany等)如何工作
回答
當從數據庫中讀取的數據創建Student的一個實例時,Hibernate使用它自己的Collection實現(它調用PersistentCollection)來初始化subjects
集合。
此PersistentCollection最初未初始化,並且不包含任何數據。第一次調用此集合的任何方法時,會執行SQL查詢以加載學生的所有主題,然後將主題緩存到集合中以進行所有後續方法調用。
我還有一個問題。你能讓我知道hibernate在運行時如何知道集合需要被延遲加載嗎?它在編譯時操作字節碼還是運行時可用的註釋? –
是的,註釋在運行時可用。當會話工廠創建時,Hibernate分析所有的實體類。 –
感謝您的回覆 –
- 1. Hibernate註釋OnetoOne關係
- 2. Hibernate @OneToMany關係
- 3. Hibernate註釋關係
- 4. Hibernate關係註釋
- 5. 關於外鍵註釋上同一實體的Hibernate OneToOne關係
- 6. @OneToOne關係是否包含@ForiegnKey註釋
- 7. Hibernate註釋創建關係
- 8. Django中的OneToMany和OneToOne關係衝突
- 9. @OnetoMany關係Hibernate Spring MVC
- 10. Hibernate註釋。如何註釋?
- 11. 父/子關係的Hibernate註釋映射?
- 12. 使用hibernate註釋映射ManyToMany關係?
- 13. OneToMany JPA註釋
- 14. Hibernate @OneToOne與多個對象的關係?
- 15. Hibernate映射OneToMany關係的方式
- 16. JPA/Hibernate有條件的onetomany關係?
- 17. @OneToMany關係上的Hibernate @Filter沒有任何作用
- 18. 如何配置基於hibernate註釋的關係?
- 19. 註釋過濾@OneToMany關聯的結果
- 20. Hibernate的註釋工作不正常
- 21. Hibernate驗證註釋不工作
- 22. 我應該如何映射獨特的OneToOne Hibernate關係?
- 23. 如何正確設置@OneToOne與JPA Hibernate的關係?
- 24. 如何使用Hibernate批註@ManyToOne和@OneToMany進行關聯
- 25. JPA @OneToOne關係
- 26. OneToOne關係
- 27. JPA @OneToMany關係作爲@Id
- 28. 何時在Hibernate中使用@OneToOne註解?
- 29. 如何爲hibernate OneToMany關係編寫hql查詢?
- 30. EclipseLink無法使用嵌套的Lazy OneToMany關係填充Lazy OneToOne
[它被稱爲開源的原因你知道](https://github.com/hibernate/hibernate-orm):) – fvu
它的開源,但我需要知道哪個類看。它是否有任何註釋處理器來處理這個問題?比方說,學生對象已填充,但科目不是由於延遲加載;當我打電話給student.getSubjects()實際發生了什麼。那就是我想知道的 –
註解只是一個標記,真正的魔法是用「編織」又稱字節碼操作完成的 - 在加載時,類被有效地重寫以創建關係和延遲加載等事情。 – fvu