java - hibernate 查询执行时将空值分配给原始类型的属性?

标签 java sql hibernate

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

相关文章:

java - 使用 Hibernate EntityManager(与 Hibernate Core 相比)有什么缺点吗?

java - 如何隐藏垂直滚动 Pane 但使用其功能?

java - 具有变化对象的连续线程

mysql - 更新 Varchar 字段,使字段内的数字保留 3 位小数

sql - Perl DBI 常量 - 如何访问?

mysql - 在sql中按查询分组

java - Hibernate:java.lang.String无法转换为java.math.BigDecimal

java - 如何在 IntelliJ IDEA 中生成 JPA Hibernate Metamodel 类?

java - 我可以做什么来制作我的程序(像 Microsoft Excel 一样另存为 pdf 文件)

java - 如何将 jingle_peerconnection_so.so 文件加载到 eclipse 中的 android 项目?