Java 我怎样才能找到确切的错误呢?

Java 我怎样才能找到确切的错误呢?,java,hibernate,nullpointerexception,hibernate-mapping,hibernate-annotations,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.hib

我得到下面的错误。但是我找不到错误是什么

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

提前感谢。

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

找到配置的源代码,转到第1481行,该行中使用了一个引用,该引用为null

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


或者你可以调试它。

由于你没有指出关于你的类的更多信息,请查看以获取指向上述错误的指针…

我刚刚偶然发现了这个问题和@BlackJoker的建议,尽管有点泛化正是我们应该做的

在我的例子中,错误发生在第1499行的hibernate core:4.3.1.Final中,但有相同的错误

代码尝试解析和外键/映射。我有一个带有@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可以解决此问题

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
放入
私家车
中,但找不到
私家车
对象

我非常怀疑OP是一个hibernate作者,它与某些配置有关[1]: