hibernate的sql查询封装实体的两种方式及 Null value was assigned to a property of解决

sql查询封装实体的两种方式:

  1. 使用 .addScalar(FIELD_ID, StandardBasicTypes.STRING)
    第一个参数为sql 中查询的字段, 第二个为数据类型, 字段名必须与sql 字段完全匹配, 可以对sql 字段取别名保证字段名完全一样
    最后使用 sqlQuery.setResultTransformer(Transformers.aliasToBean(Demo.class)).list();
  2. 使用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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值