2016-11-12 65 views
0

我有一組表,我維護一個active_ind列並有一個jpa實體映射到它。jpa只讀活動記錄

當我寫的查詢,我喜歡讓事情變得簡單,只是做: 選擇d從醫生那裏......

相反的:從醫生那裏d.activeInd =「A」和 選擇d ..

是否有可能通過註釋來實現「where d.activeInd ='A'」,還是我總是必須將它放在where子句中? 這對於一個單獨的實體來說可以,但是當我加入幾張桌子時,它會變得很麻煩。

+0

JPA不提供註釋以將任意SQL段添加到查詢中。 –

回答

0

如果您使用Hibernate作爲JPA提供程序,則可以使用hibernate的@Filter註釋在查詢中自動過濾實體。

但是,如果您需要堅持使用純粹的JPA,儘管它已被希望(https://java.net/jira/browse/JPA_SPEC-87),但還是沒有對等的。

+0

好吧我想更好地使用休眠比jpa,因爲他們提供更多的功能。謝謝 –

+0

即使代碼的其餘部分是JPA,仍然可以使用@Filter註釋,這僅表示您的代碼不是100%兼容JPA。 – Kayaman

-1

Spring可以使用JPA,它提供了一個DAO接口,它具有方法find(id)和findAll()。您甚至可以使用findByFirstNameAndLastName()等字段創建自己的方法。

我希望它有幫助。