Hibernate使用createSqlQuery進行模糊查詢時找不到數據


1. 首先明確一點,使用createSqlQuery如下兩種方式的占位符都可以使用,這個在官方的文檔可以查到。

注意使用模糊查詢時,賦值兩邊不可以添加單引號。

Query query = sess.createSQLQuery("SELECT * FROM CATS WHERE NAME like ?").addEntity(Cat.class);
List pusList = query.setString(0, "Pus%").list();
     
query = sess.createSQLQuery("SELECT * FROM CATS WHERE NAME like :name").addEntity(Cat.class);
List pusList = query.setString("name", "Pus%").list();

 

現在碰到問題是使用模糊查詢時,一直查詢不到結果,全部為空。

解決方案:

在hibernate的配置參數中添加查詢翻譯器配置:

 <!-- 查詢翻譯器 -->
 <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM