Weblogic 12c не использует гибернацию ORM

Я пытаюсь развернуть загрузку Spring с использованием данных Spring jpa и hibernate для Oracle Weblogic 12c (12.2.1) с приведенными ниже зависимостями и получаю исключение ниже.

  • JDK 8
  • Weblogic 12.2.1
  • Spring boot version 1.4.1
  • Spring data jpa version 1.10.3
  • Spring orm 4.3.3
  • ядро hibernate, менеджер сущностей hibernate 5.0.11

я определяю Entity Manager Factory Bean как

    @Bean(name = "entitiesManagerFactory")
    @Primary
    public EntityManagerFactory entitiesManagerFactory() {
        LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
        emf.setPersistenceUnitName("DemoEntityPU");
        emf.setMappingResources("META-INF/orm.xml");
        emf.setDataSource(dataSource());
        emf.setPersistenceProvider(hibernatePersistenceProvider());
        emf.setJpaVendorAdapter(hibernateJpaVendorAdapter());
        emf.setPackagesToScan("com.demo.entities.entity");

        Properties properties = new Properties();

        properties.setProperty("hibernate.hbm2ddl.auto","validate");
        properties.setProperty("hibernate.default_schema", "demoSchema");
        properties.setProperty("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
        properties.setProperty("hibernate.show_sql", "false");
        properties.setProperty("hibernate.generate_statistics", "false");
        properties.setProperty("hibernate.format_sql", "true");
        properties.setProperty("hibernate.use_sql_comments", "false");
        properties.setProperty("hibernate.jdbc.batch_size", "100");
        properties.setProperty("hibernate.order_inserts", "true");
        properties.setProperty("hibernate.order_updates", "true");
        properties.setProperty("hibernate.connection.useUnicode", "true");
        properties.setProperty("hibernate.connection.charSet", "UTF-16");
        properties.setProperty("hibernate.connection.characterEncoding", "UTF-16");

        properties.setProperty("jadira.usertype.autoRegisterUserTypes", "true");

        properties.setProperty("jadira.usertype.javaZone", "UTC");
        properties.setProperty("jadira.usertype.databaseZone", "UTC");
        emf.setJpaProperties(properties);

        emf.afterPropertiesSet();
        return emf.getObject();

    }

исключение

Caused by: java.lang.Throwable: Substituted for missing class Exception [EclipseLink-7244] (Eclipse Persistence Services - 2.6.3.v20160526-8f41838) - org.eclipse.persistence.exceptions.ValidationException
Exception Description: An incompatible mapping has been encountered between [class com.demo.entities.entity.PhysicalServers] and [class com.demo.entities.entity.Deployment]. This usually occurs when the cardinality of a mapping does not correspond with the cardinality of its backpointer.
        at org.eclipse.persistence.exceptions.ValidationException.invalidMapping(ValidationException.java:1296)
        at org.eclipse.persistence.internal.jpa.metadata.accessors.mappings.ManyToManyAccessor.process(ManyToManyAccessor.java:158)
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processNonOwningRelationshipAccessors(MetadataProject.java:1581)
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProject.processStage3(MetadataProject.java:1870)
        at org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processORMMetadata(MetadataProcessor.java:577)
        at org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:607)
        at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:1948)
        at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactoryImpl(PersistenceProvider.java:347)
        at org.eclipse.persistence.jpa.PersistenceProvider.createContainerEntityManagerFactory(PersistenceProvider.java:313)
        at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:613)
        at weblogic.persistence.BasePersistenceUnitInfo.init(BasePersistenceUnitInfo.java:201)
        at weblogic.persistence.BaseJPAIntegrationProvider.createPersistenceUnitInfo(BaseJPAIntegrationProvider.java:54)
        at weblogic.persistence.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:422)
        at weblogic.persistence.AbstractPersistenceUnitRegistry.loadPersistenceDescriptors(AbstractPersistenceUnitRegistry.java:128)

Мой код отлично работает на tomcat, но при переходе на weblogic expcetion повышается во время развертывания.

я не знаю, почему eclipselink участвует, даже я определяю в weblogic.xml

   <wls:prefer-application-packages>
        <wls:package-name>org.slf4j</wls:package-name>
        <wls:package-name>com.fasterxml.classmate.*</wls:package-name>
        <wls:package-name>com.fasterxml.jackson.*</wls:package-name>

        <wls:package-name>javax.validation.*</wls:package-name>
        <wls:package-name>javax.validation.bootstrap.*</wls:package-name>
        <wls:package-name>javax.validation.constraints.*</wls:package-name>
        <wls:package-name>javax.validation.groups.*</wls:package-name>
        <wls:package-name>javax.validation.metadata.*</wls:package-name>
        <wls:package-name>javax.validation.spi.*</wls:package-name>

        <wls:package-name>javax.persistence.*</wls:package-name>
        <wls:package-name>javax.persistence.criteria.*</wls:package-name>
        <wls:package-name>javax.persistence.metamodel.*</wls:package-name>
        <wls:package-name>javax.persistence.spi.*</wls:package-name>

        <wls:package-name>org.apache.commons.*</wls:package-name>
        <wls:package-name>org.apache.xmlbeans.*</wls:package-name>
        <wls:package-name>org.springframework.*</wls:package-name>

        <wls:package-name>org.hibernate.*</wls:package-name>
        <wls:package-name>org.hibernate.validator.*</wls:package-name>
        <wls:package-name>org.hibernate.jpa.*</wls:package-name>
        <wls:package-name>org.hibernate.ejb.*</wls:package-name>
        <wls:package-name>org.hibernate.annotations.*</wls:package-name>

        <wls:package-name>org.joda.*</wls:package-name>
        <wls:package-name>antlr.*</wls:package-name>
    </wls:prefer-application-packages>

но возникло исключение, и в сети используется eclipselink и игнорируется мой постоянный компонент поставщика.

Любая помощь или подсказка будет высоко ценится.

1 ответ

Привет я добавляю похожую проблему

Я комментирую:

ANTLR.*

и сервер был и разрушает

Надеюсь, это поможет

Другие вопросы по тегам