Bootstrap

SQL Error: 17006, SQLState: 99999 列名无效

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();
		}
		......
;