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