Postgres查询在SQL客户端中工作,但在Hibernate中不起作用

时间:2017-04-15 11:15:32

标签: spring postgresql hibernate

以下查询有什么问题?它完全在pgadmin的sql编辑器中工作,但是当我将它添加到我的编程代码中时,它无法正常工作。我正在使用spring和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 个答案:

答案 0 :(得分:2)

您的查询细分之间缺少空格。正如你所说的那样:... 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)