2017-04-15 121 views
-1

以下查询有什么问题?它完全在pgadmin的sql编辑器中工作,但是当我将它添加到我的编程代码中时,它不起作用。我正在使用spring和hibernate。Postgres查询适用于SQL客户端,但不适用于Hibernate

List<Object[]> category= null; 
    try{ 
     SQLQuery qry = session 
        .createSQLQuery("SELECT * FROM (mlm_placement_details bp INNER JOIN mlm_user_reg_data t ON t.USER_ID=bp.USER_ID" 
      + "WHERE (bp.USER_NAME) LIKE (:name)"); 
     qry.setParameter("name", "%" + userName + "%"); 
     qry.setMaxResults(100); 

     category = qry.list(); 

    session.flush(); 
    }catch (HibernateException e) { 
     logger.error(e); 
     errorCloseDBSession(); 
     e.printStackTrace(); 
     return null; 
    } 
+1

什么错误?请粘贴跟踪 – sisanared

+0

postgresql无法在输入结束时提取resultset和postgresql语法错误 – Jiji

+1

删除FROM'from mlm _...'not'from(mlm ...')后面的括号并且:将列名或单个值圆括号完全没用 –

回答

2

您在查询分段之间缺少空格。当你正在concatinating:... t.USER_ID=bp.USER_ID" + "WHERE ...

你可以试试这个:

SQLQuery qry = session 
        .createSQLQuery("SELECT * FROM mlm_placement_details bp INNER JOIN mlm_user_reg_data t ON t.USER_ID=bp.USER_ID " 
      + "WHERE (bp.USER_NAME) LIKE (:name)"); 

更新:也注意到了不必要的开括号(感谢@a_horse_with_no_name)

+0

FROM后面的圆括号还需要删除 –

+0

括号是问题@ a_horse_with_no_name – Jiji

相关问题