我在dao中有下面的代码片段
String GET_CUSTOMER="SELECT * from customer where custName=:custName"
Session session = getHibernateUtil().getSession();
SQLQuery query = session.createSQLQuery(GET_CUSTOMER);
query.setParameter("custName", custName);
query.setResultTransformer(Transformers
.aliasToBean(Customer.class));
Customer custData = (Customer) query
.uniqueResult();//line
Customer 表有一些 int 列,其中一些值为 null。现在在第 1 行我得到错误 将空值分配给 Customer.Address 的原始类型 setter 的属性
hibernate/query/Transformer 有没有办法自动将空值转换为 0? 我刚刚提到了一个表,即 customer 但有各种连接表,其中在各个列中包含 int 值作为 null 所以我这样做 不想处理每个表的查询。
更新:- 客户不是 Hibernate 实体。它与 int 类型的实例字段 pojo
最佳答案
Customer table has some int columns for which some values as null.
在这种情况下,我建议改为使用 Integer
字段。虽然您可以可能让 Hibernate 将 NULL
合并为 0
(尽管可能不是以一种简单的全局方式),但它并没有真正有效地映射您的数据- 你为什么要丢失这样的信息?
关于java - hibernate 查询执行时将空值分配给原始类型的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14827249/