我怎么能找到确切的错误?

时间:2013-03-16 10:23:31

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

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

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

提前致谢。

5 个答案:

答案 0 :(得分:1)

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

然后挖掘如何分配此引用,并追溯它。

或者你可以调试它。

答案 1 :(得分:1)

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

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

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

c = [['mf1234','james','22','man'],['mcs345','Anne','23','women]]

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

答案 2 :(得分:0)

由于您尚未对课程进行更多指示,请查看Hibernate throwing NullPointerException - processFkSecondPassInOrder以指出上述错误......

答案 3 :(得分: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)

该错误意味着您将注释放在缺少的对象上。例如:您将@JoinColumn放入private Car car,但Car对象无处可寻。

答案 4 :(得分:-2)

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