0
我在這很好地工作的情況下,像這樣的應用程序的用戶信息庫:結合參數和硬編碼的條款在春天JPA @Query
@Query(" FROM UserEntity ue WHERE ue.site.id = :site_id
and ue.name = :username")
User findByUsername(@Param("site_id") String siteId,
@Param("username") String userName);
現在有在用戶領域的一個新的選擇,這應該防止用戶出現在應用程序的任何地方。因此,而不是修正整個應用程序,我已經決定修改只是在倉庫與硬編碼子句這樣的疑問:
@Query(" FROM UserEntity ue WHERE ue.site.id = :site_id
and ue.name = :username and ue.state != 'Disabled'")
User findByUsername(@Param("site_id") String siteId,
@Param("username") String userName);
(變更部分and ue.state != 'Disabled'
)
的問題是,這樣的查詢無論國家的價值是什麼,都不會返回任何東西。
我也試過ue.state not like 'Disabled'
,但結果相同。 我見過很多使用@Query
的例子,但沒有找到任何硬編碼的子句。這甚至有可能嗎?
你嘗試'不in'以及可以讓SQL真實,檢查哪些查詢其發電。 –
是的。我試過'不在('禁用')'。相同的結果 – NeplatnyUdaj
首先在hibernate配置文件中創建數據庫,並將您的查詢作爲控制檯日誌來測試它將打印查詢。只需檢查其填充內容。您可以在sqlbrowser中檢查相同的查詢。 –