【问题标题】:How i can find the exact error?我怎样才能找到确切的错误?
【发布时间】:2013-03-16 10:23:31
【问题描述】:

我收到以下错误。但是我找不到错误是什么。

Caused by: java.lang.NullPointerException
    at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1481)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1419)
    at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
    ... 91 more

提前致谢。

【问题讨论】:

标签: java hibernate nullpointerexception hibernate-mapping hibernate-annotations


【解决方案1】:

找到Configuration的源代码,到第1481行,该行有引用,引用为null。

然后挖掘这个引用是如何分配的,并追溯它。

或者你可以调试它。

【讨论】:

    【解决方案2】:

    我只是偶然发现了这个问题和@BlackJoker 的建议,虽然有点笼统是应该做的。

    在我的情况下,错误发生在 hibernate-core:4.3.1.Final 的第 1499 行,但错误相同。

    代码尝试解析外键/映射。我有一个带有@OneToOne 映射的实体,其类型不是必需的实体,而是字符串。

    @Entity
    @Table(name = "MyTable")
    public class BrokenEntity {
    
        @Id
        @Column(name = "id")
        private String flow;
    
        @Id
        @JoinColumn(name = "other_id")
        @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
        private String group;// Now hibernate tries to map the String as entity and fails!
    }
    

    删除映射或用有效实体替换 java.lang.String 可以解决问题。

    【讨论】:

      【解决方案3】:

      由于您没有指出更多关于您的课程的内容,请查看Hibernate throwing NullPointerException - processFkSecondPassInOrder 以获取指向上述错误的指针...

      【讨论】:

        【解决方案4】:
        Caused by: java.lang.NullPointerException
            at org.hibernate.cfg.Configuration.processFkSecondPassInOrder(Configuration.java:1481)
            at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1419)
            at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1375)
        

        该错误意味着您为丢失的对象添加了注释。例如:您将@JoinColumn 放入private Car car,但找不到Car 对象。

        【讨论】:

          【解决方案5】:

          异常称为NullPointerException,表示您正在尝试使用未创建的对象,这通常发生在您声明一个对象,忘记创建它并尝试使用它时。

          【讨论】:

          • 我非常怀疑 OP 是休眠作者
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多