У меня очень странная проблема.
У меня есть приложение, использующее 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.
Но когда мы переходим на более высокий уровень envs, команда, которая развертывает это приложение, сначала делает это успешно, но после нескольких перезапусков приложения, entitymanager начинает выдавать эту проблему
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: ConfigAPPPersist] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:132)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:224)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:291)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1368)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334)
... 32 more
Caused by: org.hibernate.MappingException: **property mapping has wrong number of columns**: com.***.***.jpa.marketing.entity.MarketBrands.$performasure_j2eeInfo type: object
Теперь вы сказали бы, что это довольно очевидно, что сущность 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>