我想創建一個查詢使用CriteriaBuilder,我需要有一個謂詞,其中謂詞的值是像數據庫中的值。JPA CriteriaBuilder值像列
基本上,我需要能夠做到以下幾點: WHERE myTestValue LIKE columnValue
在本機查詢,這是應該做的是一個選項,但使用CriteriaBuilder或NamedQueries,它似乎並沒有工作。
String myValue = "[email protected]";
cb.where(cb.like(myValue, root.get(Entity_.email));
在JPA中是否有這樣的選項?或者我應該回到原生查詢?
編輯 我需要能夠檢查,如果給定值匹配數據庫中的通配符項。所以數據庫有記錄%@bar.com%
,我需要檢查我的給定值[email protected]
是否與該記錄匹配。
也許你忘了在測試字符串的開始和結尾處添加「%」? – perissf
你有什麼錯誤嗎?或者它只是不工作.. –
它只是不編譯。 JPA不喜歡這樣做;) – Erates