0

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

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

提前致谢。

4

5 回答 5

1

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

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

或者你可以调试它。

于 2013-03-16T10:26:38.460 回答
1

我只是偶然发现了这个问题和@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 可以解决问题。

于 2016-03-15T12:15:47.413 回答
0

由于您还没有指出任何关于您的类的更多信息,请查看Hibernate throwing NullPointerException - processFkSecondPassInOrder以获取指向上述错误的指针...

于 2013-03-16T10:31:56.053 回答
0
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)

该错误意味着您将注释放在丢失的对象上。例如:您放入@JoinColumnprivate Car car找不到该Car对象。

于 2017-07-04T06:54:46.067 回答
-2

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

于 2013-03-16T10:25:21.473 回答