【发布时间】:2011-01-13 04:07:20
【问题描述】:
我有一个非常奇怪的问题。 有一个使用 Hibernate 和 spring 的应用程序。我定义了一个使用 JNDI 查找的实体管理器。它看起来像这样
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="ConfigAPPPersist" />
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="false" />
<property name="databasePlatform"
value="org.hibernate.dialect.Oracle9Dialect" />
</bean>
</property>
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.WebSphereDataSourceAdapter">
<property name="targetDataSource">
<bean
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/pmp" />
</bean>
</property>
</bean>
此应用程序在 DEV 中运行良好。 但是当我们迁移到更高的环境时,部署此应用程序的团队最初会成功,但在应用程序重新启动几次后,实体管理器开始出现此问题
引起:javax.persistence.PersistenceException: [PersistenceUnit: ConfigAPPPersist] 无法构建 EntityManagerFactory 在 org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677) 在 org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:132) 在 org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:224) 在 org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:291) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334) ... 32 更多 引起:org.hibernate.MappingException:**属性映射的列数错误**:com.***.***.jpa.marketing.entity.MarketBrands.$performasure_j2eeInfo 类型:对象现在你会说这很明显实体 MarketBrands 是不正确的。但它不是它映射到表就好了。同样的代码也适用于 DEV。
此外,jndi 不能不正确,因为它最初部署并工作正常,但在重新启动后抛出此错误。
这很奇怪,而且不太合乎逻辑。 但是,如果有人遇到过这种情况或对可能导致这种情况的原因有任何想法,请!!帮助
持久化单元的persistence.xml很少
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="ConfigAPPPersist">
<!-- commented code
-->
</persistence-unit>
</persistence>
【问题讨论】:
标签: java hibernate orm jpa websphere