有人看过此消息吗?
在Hibernate论坛上进行了一些讨论,但对于问题可能是什么却不太清楚。
我们正在使用JPA和Spring 3.0.5运行Hibernate
3.6.9。这个异常只是在两个版本之间弹出(就像一天前一样,今天在部署时会引起问题)。这可能与某些错误配置的orm文件有关吗?我们为模型提供了orm.xml文件,为命名查询提供了文件。
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.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1519)
at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:193)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:1100)
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:689)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:225)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:308)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
因此,我们发现了问题。不幸的是,当Hibernate无法找到FK时不会抛出一些标准的配置异常,例如“嘿,假人,我找不到您在orm文件中html" target="_blank">定义的FK”。
我们在相同的schema / db下有两个对象:
class Person {
Long id;
String name;
Address address;
...
}
因此,Address对象是一对一的,作为复合键的一部分存在:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm
http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"
version="2.0">
<description>com.foo.Person Entity Mapping</description>
<package>com.foo</package>
<schema>COMMON</schema>
<access>FIELD</access>
<entity class="com.foo.Person" access="FIELD" metadata-complete="true">
<table name="PERSON"/>
<attributes>
<embedded-id name="id"/>
<basic name="name">
<column name="NAME"/>
</basic>
</attributes>
</entity>
<embeddable class="com.foo.Person$Id" access="FIELD">
<attributes>
...
<one-to-one name="address" fetch="LAZY" target-entity="com.foo.Address" >
<join-column name="ADDR_CD" insertable="false" updatable="false"/>
<cascade>
<cascade-all/>
</cascade>
</one-to-one>
</attributes>
</embeddable>
</entity-mappings>
问题在于我们将Address对象移至另一个数据库上的另一个模式,并将关系保留在orm文件中(因此,Address在复合键中仍然是一对一的)。
为了解决这个问题,我们断开了关系,使Address变为瞬态,以便我们以另一种方式检索它,从而消除了异常的发生。
问题内容: 我正在尝试使用IntelliJ 12.1.3使用JPA测试Hibernate 4.2.1.Final,但出现以下错误。 一切似乎都设置正确(我让IntelliJ生成了映射),由于我对Hibernate和JPA的经验为零,所以我无所适从。 为什么要启用NPE? 主类: 错误: Persistance.xml 问题答案: 该消息向我表明它无法连接到数据库。仔细检查您的连接字符串,并确保您的
问题内容: 我正在使用Spring Boot,Spring Data REST,Hibernate(5.2.12.Final),并将存储库公开为REST服务。 我有一个引发NullPointerException的查询问题,我不明白原因。我正在通过HTTP请求调用此方法(Spring Data REST公开了此方法)。 这是代码: 这是堆栈跟踪: 我确实没有发现该查询有任何问题。我是在做错什么还是
departamentdaoimpl.java departamentservice.java DepartamentServiceImpl.java
问题内容: 我有一个Web应用程序,该应用程序具有搜索表单,并且HQL是即时生成的。此外,用户可以单击列标题以根据需要对项目进行排序。一些列从非常深的结构中获取其他数据。 例如,我有这个HQL,它可以完美地工作: 但是这一失败惨败: 有人可以指出,我要去哪里错了。不支持这种深层语法吗? hibernate版本是3.2.1。 抱歉,忘记了堆栈跟踪: 问题答案: 正如@JBNizet正确指出的那样,问
我是一个在spring boot和ne04j的新蜂。我正在工作的项目包含两个模块web和core。web(包作为一个war)模块包含spring控制器和core(包作为一个jar)模块包含neo4j存储库和域。web模块包含作为一个jar的core模块。当我使用Java-jar web/target/my-project-1.0-snapshot.war运行项目时,它会抛出NullPointerE
我刚刚完成了从Hibernate 3.6到4.1.3 Final的升级,起初一切似乎都很顺利。然而,我的一位同事最近在一个场景中测试了这个问题,他从Hibernate中抛出了一个空指针(在我们升级到完全相同的DB之前,没有抛出这个异常)。这是一个不可思议的奇怪场景。我们有一个名为BlogPost的实体,如下所示,它扩展了一些映射的超类(我也包括了这些超类): 当我在某些情况下查询BlogPost时