爲什麼jpa註釋應用於字段或getter方法。如果我嘗試在setter方法上應用註釋,那麼編譯器會生成錯誤。因爲編譯器忽略setter方法的註釋。他們背後的原因是什麼?JPA:爲什麼註釋應用於獲取者或字段
3
A
回答
10
這是它是如何指定的。每JPA Specification:
- 當使用基於字段的訪問,對於實體類對象/關係映射註解註釋實例變量,和持久性提供運行時直接訪問的實例變量。所有非暫時性的實例變量都沒有使用瞬態註釋進行註釋,它們是持久性的。
- 當使用基於屬性的訪問時,實體類的對象/關係映射註釋會註釋getter屬性訪問器[7],持久性提供者運行時通過屬性訪問器方法訪問持久狀態。所有未用Transient註釋標註的屬性都是持久的。
- 映射註釋不得應用於瞬態或瞬態的字段或屬性。
有兩種選擇。使用字段級別註釋或屬性(getter方法)註釋。沒有第三種選擇。
1
當我們對getter進行註釋時,JPA通過getters訪問屬性。不需要在setters上放置註釋。
1
因爲對於一個對象,只有兩種方法直接訪問屬性,字段或者間接獲取。
對於實體bean,註解指定如何將屬性映射到列,JPA需要訪問這些實體的狀態,所以我猜這是直接在字段或getter上放置註釋的最直觀方式。
相關問題
- 1. 我應該在哪裏應用JPA註釋,獲取者或字段?
- 2. JPA 2.0中的JPA 2.0字段註釋與方法註釋
- 3. 什麼是應該用於javax.inject.Named註釋?
- 4. 爲什麼我無法獲得該字段的註釋?
- 5. 爲什麼@interface用於定義註釋?
- 6. 直接獲取字段的註釋
- 7. 什麼是JPA @Table註釋「目錄」和「模式」變量用於?
- 8. 什麼是默認的JPA註釋
- 9. 什麼休眠/ JPA註釋需要
- 10. 這些JPA註釋是什麼意思?
- 11. 什麼行應該被取消註釋,爲什麼,繼承
- 12. 時候和爲什麼我應該使用NamedNativeQuery或NamedQuery註釋
- 13. 如何使用JPA批註註釋MYSQL自動增量字段
- 14. 什麼是JDO相當於JPA @PersistenceContext註釋
- 15. 使用休眠或JPA註釋
- 16. 爲什麼或者爲什麼不應該使用Java 7?
- 17. 爲什麼JUnit中的@Rule註釋字段必須公開?
- 18. @IdClass JPA註釋
- 19. JPA註釋
- 20. OneToMany JPA註釋
- 21. JPA ManyToMany註釋
- 22. 爲什麼使用redux-thunk或者redux-saga來獲取?
- 23. 爲什麼jpa和hibernate都有「實體」和「表」註釋?
- 24. 爲什麼JPA瞬態註釋在Target中有方法?
- 25. 爲什麼我的JPA註釋類沒有隱式發現?
- 26. 爲什麼無法從beanClass獲取註釋?
- 27. JPA:自己的註釋捆綁具有相同值的字段的註釋
- 28. 獲取與註釋,字段列表通過使用反射
- 29. 什麼是在類字段中使用的@EJB註釋?
- 30. django - 基於字段計算的註釋