1

我的应用程序使用 hsql 作为数据库。到目前为止它工作正常。在生产中,我得到了异常 org.hibernate.SerializationException 无法反序列化 EOF 异常。我无法获得完整的堆栈跟踪,因为我的代码中没有正确捕获异常。

我也没有导致此异常的确切事件顺序。在我重新启动tomcat和hql后,问题就消失了。

抱歉含糊不清,但我需要一些有关根本原因分析的帮助。这里可能是什么问题?

validateSession();
        Session session = SessionFactory.getInstance(SessionContext.DISTRIBUTED).getSession();
        session.beginTransaction();
        List results;
        try {
            Criteria cri = session.createCriteria(Filter.class);
            cri.add(Restrictions.eq( "user", userVO.user() ));
            setLazyMode(cri);
            results = cri.list();
            session.getTransaction().commit();
        } finally {
            rollbackIfStillOpen(session);
        }
4

1 回答 1

0

不知道它是否会对您有所帮助,但我遇到了同样的问题,而且似乎我的 @Id 高于成员而不是吸气剂......

我觉得休眠异常消息非常非常差。我必须调试并创建特殊的测试用例来确定问题。hibernate 会这么难说:我找不到 Id。它是带注释的还是映射的?将您的注释放在 getter 而不是成员上。

这让我想到了这样一个事实,我不明白为什么一次必须在 getter 上,而另一次必须在 member 上……为什么不把所有都放在 member 或 getter 上?getter 和 member 都相互关联,那么为什么会有这些废话呢?

于 2013-06-18T14:14:53.193 回答