加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – HIbernate没有获取数据库记录中字段为null的值

发布时间:2020-12-15 00:36:28 所属栏目:Java 来源:网络整理
导读:我使用下面的hibernate代码从数据库中获取数据. SessionFactory factory = null; Session session = null; try { factory = getSessionFactory(); session = factory.openSession(); final Criteria criteria = session .createCriteria(CrfEmailDataBean.cl
我使用下面的hibernate代码从数据库中获取数据.
SessionFactory factory = null;
    Session session = null;
    try {
        factory = getSessionFactory();
        session = factory.openSession();

        final Criteria criteria = session
                .createCriteria(CrfEmailDataBean.class);
        criteria.add(Restrictions.eq(CAMPN_NBR,campNbr));
        returnList = criteria.list();
    } catch (Exception e) {
        logger.error(e.getMessage());
        throw new DAOException(e);
    } finally {
        DBUtil.close(factory,session);
    }
    if (logger.isInfoEnabled()) {
        logger.info(LOG_METHOD_EXIT);
    }
    return returnList;
}

在CrfEmailDataBean类中,我已经声明了一个私有的字符串crfEmailTypeCd;数据库中为null的字段.由于null,它不在返回列表中设置记录.如果我去数据库中的字段内输入一个值,它就会获取.

我尝试直接在sql数据库上运行查询,形成的查询是正确的并获取所有数据.

为什么不提取该记录?我该如何解决这个问题?

解决方法

当你使用类型属性原语相同时,需要设置默认值,相同的零(0)或(a)(..)
private int number;
private int value;
private char option;

如果hibernate数据库准备就绪,那么当Hibernate生成器的转换器出错时

>这种从不用户原始类型的解决方案
>或者为属性定义默认值
>每个其他可能性您的日期不为空,此值为白色
> white与null不同
>制作测试条件Restrictions.isNotNull.
>制作其他测试条件Restrictions.isNull.
>其他测试使一个方法接收int,调用send一个Integer null

第一项

private Integer number;
private Integer  value;
private Character option;

最后一项测试

public class Test{

    public static void setInt(int value){
       System.out.println(value);
    }

    public static void main(String[] args)
    {
        Integer testValue=null;
        Test.setInt(testValue);
    } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读