2017-08-04 24 views
1

有沒有辦法在Hibernate上註冊不在實體類或package-info.java中的指定查詢?有沒有一種方法可以定義不在實體類中的命名查詢,也不需要package-info.java?

目前我的命名查詢是通過封裝在package-info.java類中的org.hibernate.annotations.NamedQueries中的註釋org.hibernate.annotations.NamedQuery來定義的,但是當在非實體的服務類中定義查詢時,它應該具有範圍public或者是包私有的(如果變量沒有修飾符,則不顯式)在上述註釋中可見,因爲它們存在於不同的類中。我想知道是否有可能通過定義 來將查詢範圍縮小到單個類(使它們成爲private),並在同一類中將它們註冊到Hibernate中。

回答

-3

使用Java Persistence API(JPA),這是一個Java規範,用於在Java對象/類和關係數據庫之間訪問,持久保存和管理數據。

映射文件中提到的類以及JAR中包含persistence.xml文件(如果已打包)的註釋類都會自動註冊。如果應用程序尚未打包到JAR中,那麼ObjectDB(作爲擴展)會自動在包含文件META-INF/persistence.xml文件的類路徑根目錄下注冊類。其他類必須通過使用類元素(用於單類註冊)或jar文件元素(用於註冊jar文件中的所有類)來顯式註冊。

+2

親愛的德島,如果您從其他網站複製/粘貼(http://www.objectdb.com/java/jpa/entity/persistence-unit),您需要引用作者/來源(就像在論文中: D) – Matt

+1

順便說一句,你沒有真正回答他的問題。這是關於_named queries_。 – Matt

+0

@Matt我認爲你應該再次閱讀問題,然後閱讀資源,而不是粘貼在這裏。所以你會更好地理解名稱查詢如何在類/包外註冊。 – Tehmina

相關問題