SQL Error: 17006, SQLState: 99999 列名无效
今天使用hibernate进行查询的时候报了一个错误,这里简单记录下。
问题描述:
使用hibernate查询实体报错。
原因分析:
String sql = "select emplId,name from employee";
try {
Session session = sessionFactory.getCurrentSession();
SQLQuery query = session.createSQLQuery(sql.toString());
query.addScalar("emplId", StringType.INSTANCE);
query.addScalar("emplName", StringType.INSTANCE);
query.setResultTransformer(Transformers.aliasToBean(Employee.class));
employeeList = query.list();
}
......
sql查询的字段为name,实体对应的字段为emplName。名称不一致导致。
解决方案:
String sql = "select emplId, name as emplName from employee";
try {
Session session = sessionFactory.getCurrentSession();
SQLQuery query = session.createSQLQuery(sql.toString());
query.addScalar("emplId", StringType.INSTANCE);
query.addScalar("emplName", StringType.INSTANCE);
query.setResultTransformer(Transformers.aliasToBean(Employee.class));
employeeList = query.list();
}
......