Hibernate 当我尝试执行createSQLQuery()时,出现以下异常:java.sql.SQLException:无效列名

Hibernate 当我尝试执行createSQLQuery()时,出现以下异常:java.sql.SQLException:无效列名,hibernate,Hibernate,您在修改_ON后漏掉了一个逗号,但如果没有SQL代码缩进,很难看到它: 不能将列选择与查询结果混合使用。如果第二个查询返回多行怎么办 您只使用两个参数USER_CODE和USER_NAME,但第二个子选择会再添加一个指定_CODE,您永远不会提供其值 由于这两个查询之间没有相关性,我认为这是您必须具备的: hql = "SELECT USER_CODE, USER_NAME, USER_SHORT_NAME, PRINT_NAME, USER_PASSWORD, REMARKS, RECORD_

您在修改_ON后漏掉了一个逗号,但如果没有SQL代码缩进,很难看到它:

不能将列选择与查询结果混合使用。如果第二个查询返回多行怎么办

您只使用两个参数USER_CODE和USER_NAME,但第二个子选择会再添加一个指定_CODE,您永远不会提供其值

由于这两个查询之间没有相关性,我认为这是您必须具备的:

hql = "SELECT USER_CODE, USER_NAME, USER_SHORT_NAME, PRINT_NAME, USER_PASSWORD, REMARKS, RECORD_ACTIVE,"+
                        " INACTIVE_WEF, CREATED_BY, CREATED_ON, MODIFIED_BY, MODIFIED_ON " +
                        "(SELECT DESGN_NAME FROM MCDESIGNATIONMASTER WHERE DESGN_CODE = :DESIGNATION_CODE)TSUSERMASTER_DESIGNATION " +
                        " FROM MCUSERMASTER WHERE USER_CODE LIKE NVL(:USER_CODE,'%') AND USER_NAME LIKE NVL(:USER_NAME,'%')";
                System.out.println("hql----"+hql);
                Query query = session.createSQLQuery(hql).addEntity(UserMasterModel.class).setParameter("USER_CODE",roleMasterModel.getUserCode()).setParameter("USER_NAME", roleMasterModel.getUserName());

删除第三行-看起来是您错误地插入了它。尝试使用sql客户端执行脚本以验证它。
Query mcMasterQuery = session
    .createSQLQuery(
    "SELECT "+
    "   USER_CODE, "+
    "   USER_NAME, "+
    "   USER_SHORT_NAME, "+
    "   PRINT_NAME, "+
    "   USER_PASSWORD, "+
    "   REMARKS, "+
    "   RECORD_ACTIVE, "+
    "   INACTIVE_WEF, "+
    "   CREATED_BY, "+
    "   CREATED_ON, "+
    "   MODIFIED_BY, "+
    "   MODIFIED_ON "+
    "FROM MCUSERMASTER "+
    "WHERE "+
    "   USER_CODE LIKE NVL(:USER_CODE,'%') AND "+
    "   USER_NAME LIKE NVL(:USER_NAME,'%')"
    )
    .addEntity(UserMasterModel.class)
    .setParameter("USER_CODE", roleMasterModel.getUserCode())
    .setParameter("USER_NAME", roleMasterModel.getUserName());

Query mcDesignationQuery = session
    .createSQLQuery(
    "SELECT " +
    "   DESGN_NAME " +
    "FROM MCDESIGNATIONMASTER " +
    "WHERE " +
    "   DESGN_CODE = :DESIGNATION_CODE" 
    )
    .addEntity(UserMasterModel.class)
    .setParameter("DESIGNATION_CODE", designationCode);