在SQL可以編寫一個查詢,搜索一個人的這樣一個名字:unicode字符串在Hibernate查詢
SELECT * FROM Person P WHERE P.Name LIKE N'%ike%'
此查詢將Unicode字符(假設名稱列和數據庫都安裝運行處理unicode支持)。
我在HQL(NHibernate)運行的HQL中有類似的查詢。生成的查詢如下所示:
SELECT P FROM SumTotal.TP.Models.Party.Person P join P.Demographics PD WHERE (PD.LastName LIKE '%カタカ%' )
不幸的是,在HQL中將字母前置'N'會導致錯誤。我試過逃避字符串中的unicode字符,但仍然沒有成功。
數據庫正在接受和保存Hibernate的Unicode字符。我已經能夠使用unicode字符串成功填充對象,使用Hibernate保存它,並在數據庫中驗證它。在我看來,有點奇怪的是,我不能在自定義查詢中使用unicode字符串(或者我還假設命名查詢)。
這是Hibernate(Nhibernate)的一個已知問題或限制嗎?你如何在HQL中使用unicode?
有幾個網站建議使用標準查詢。由於我在工作的框架中存在一些限制,這是不可能的。
我遞歸構建一個複雜的查詢字符串不同的標準和操作。我有一個提供者,我將操作和術語傳入以獲取「喜歡」部分。如果我不這樣做,這將工作!我希望有一些神奇的逃生角色。 – 2009-01-15 19:39:35
不幸的是,查詢中可用參數的數量有限制,所以這不是最終的解決方案。 – spartaco 2017-07-25 13:55:13