sql查询封装实体的两种方式:
- 使用 .addScalar(FIELD_ID, StandardBasicTypes.STRING)
第一个参数为sql 中查询的字段, 第二个为数据类型, 字段名必须与sql 字段完全匹配, 可以对sql 字段取别名保证字段名完全一样
最后使用 sqlQuery.setResultTransformer(Transformers.aliasToBean(Demo.class)).list(); - 使用addEntity
hbCrudDAO.getSessionFactory().getCurrentSession().createSQLQuery(sql)
.addEntity(“re”,Researcher.class);
return query.list();
第一个参数也是别名, 不过此种方法需要为实体类添加映射文件 来匹配table 与po 中相对应的字段
Null value was assigned to a property of primitive type setter of 错误解决
在使用 addScalar 由于有些字段返回的数据会为null, 但po 中的字段类型被我们设置成了 StandardBasicTypes.STRING 或者Long 类型, 这是无法进行类型转换, 需要我们在sql 中对null 进行处理添加默认值
ifnull (a.user_salary, 0)
使用 ifnull 将会替我们将null 值替换成我们设置的default 值, 这样就可以完没解决
Null value was assigned to a property of primitive type setter of。