15赞
693
当前位置:  开发笔记 > 编程语言 > 正文

HibernateTemplateGet方法返回一个具有空值的对象

如何解决《HibernateTemplateGet方法返回一个具有空值的对象》经验,如何解决这个问题?

我遇到了Hibernate的一个奇怪问题.有两个数据库表存储活动和已解决的票证.在Java中,有一个超类(Ticket)和实体子类(ActiveTicket和ResolvedTicket).

现在,当票证被解析后,它将被移动到ResolvedTicket表.

现在我有一个自定义的findByID方法,我尝试首先检索活动票证然后如果我有一个空对象,那么我尝试检索已解决的票证.它看起来像这样:

public Ticket findByID(Long id) {
    Ticket t = findByID(ActiveTicket.class, id);
    if (null == t) {
        t = findByID(ResolvedTicket.class, id);
    }
    return t;
}

这是自定义的findByID:

public  C findByID(Class class, PK id) {
    return (C) getHibernateTemplate().get(class, id);
}

在我的例子中,我有一个存储在数据库中的ResolvedTicket,当我在第一个片段中调用findByID()时,第一行返回一个包含空值的对象.它看起来像一个代理对象,但它很奇怪,因为每当我尝试调用它的任何getter时,我都会得到一个NullPointerException,这很奇怪,因为在测试t == null时该对象不为null.

这是调用getHibernateTemplate().get(ActiveTicket.class,id)时对象的外观: 在此输入图像描述

推荐阅读
devbox
0雕雕_970
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4