3

我在 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

客户表有一些 int 列,其中一些值为 null。现在在 line1 我得到错误 Null value was assigned to a property of original type setter of Customer.Address

hibernate/query/Transformer 有没有办法自动将空值转换为 0?我刚刚提到了一个表,即客户,但是有各种联接表,其中在各个列中包含 int 值作为 null,所以我不想在查询中处理每个表。

更新:-客户不是休眠实体。它带有 int 类型的实例字段

4

2 回答 2

5

客户表有一些 int 列,其中一些值为 null。

在这种情况下,我建议Integer改为将它们设为字段。虽然您可能可以让 Hibernate 合并(尽管可能不是NULL0一种简单的全局方式),但它并没有真正有效地映射您的数据——您为什么要丢失这样的信息?

于 2013-02-12T07:11:12.097 回答
0

我不知道 Hibernate 转换器,但我有不同的想法。可以改数据库吗?您可以使该列不可为空并使用默认值 0。这样,您可以存储在数据库中的所有可能值都可以映射到 int 原语。

于 2013-02-12T12:39:13.583 回答