Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将JPA实体与PersistenceUnits关联_Java_Oracle_Hibernate_Jpa_Wildfly - Fatal编程技术网

Java 如何将JPA实体与PersistenceUnits关联

Java 如何将JPA实体与PersistenceUnits关联,java,oracle,hibernate,jpa,wildfly,Java,Oracle,Hibernate,Jpa,Wildfly,我有两个persistenceUnits映射到两个不同的Oracle模式,这些模式相似,但表名不同。当我尝试部署我的应用程序时,我得到一个Hibernate异常“Missing Table”,它似乎是Hibernate在错误的persistenceUnit中查找表 .ear#POI持久化单元\“:org.hibernate.hibernate异常:缺少表:POI_服务 原因:org.hibernate.HibernateException:缺少表:POI_服务“} 表“POI_服务”属于“POI

我有两个persistenceUnits映射到两个不同的Oracle模式,这些模式相似,但表名不同。当我尝试部署我的应用程序时,我得到一个Hibernate异常“Missing Table”,它似乎是Hibernate在错误的persistenceUnit中查找表

.ear#POI持久化单元\“:org.hibernate.hibernate异常:缺少表:POI_服务 原因:org.hibernate.HibernateException:缺少表:POI_服务“}

表“POI_服务”属于“POIExtractorPersistenceUnit”持久单元,而不是“POIPersistenceUnit”持久单元

我尝试在persistence.xml文件中列出具有各自persistenceUnits的实体,如下所示,但没有成功,仍然得到相同的错误

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

<persistence-unit name="POIExtractorPersistenceUnit">

    <jta-data-source>java:/XAPOIExtractorDS</jta-data-source>

    <class>za.co.fnb.cii.poiextractor.persistence.model.IdentificationRequest</class>
    <class>za.co.fnb.cii.poiextractor.persistence.model.IdentificationResponse</class>
    <class>za.co.fnb.cii.poiextractor.persistence.model.POIService</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>

    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
        <property name="hibernate.archive.autodetection" value="class" />
        <property name="hibernate.flushMode" value="FLUSH_AUTO" />
        <property name="hibernate.hbm2ddl.auto" value="validate" />
        <property name="hibernate.show_sql" value="true" />

    </properties>

</persistence-unit>

<persistence-unit name="POIPersistenceUnit">

    <jta-data-source>java:/XACompendiumDS</jta-data-source>

    <class>za.co.fnb.cii.poiextractor.persistence.entities.IdentificationRequestIncoming</class>
    <class>za.co.fnb.cii.poiextractor.persistence.entities.IdentificationResponseIncoming</class>
    <exclude-unlisted-classes>true</exclude-unlisted-classes>

    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
        <property name="hibernate.archive.autodetection" value="class" />
        <property name="hibernate.flushMode" value="FLUSH_AUTO" />
        <property name="hibernate.hbm2ddl.auto" value="validate" />
        <property name="hibernate.show_sql" value="false" />

    </properties>

</persistence-unit>
更新:

堆栈跟踪

2016-01-08 12:24:52587信息[java.sql.DatabaseMetaData] (ServerService线程池--58)HH000262:未找到表: POI_服务2016-01-08 12:24:52590错误[org.jboss.msc.SERVICE.fail] (ServerService线程池--58)MSC000001:无法启动服务 jboss.persistenceunit.“poiextractor-ear-1.0.0-SNAPSHOT.ear#POIPersistenceUnit”: org.jboss.msc.service.StartException在服务中 jboss.persistenceunit.“poiextractor-ear-1.0.0-SNAPSHOT.ear#POIPersistenceUnit”: org.hibernate.HibernateException:缺少表:位于的POI_服务 org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:172) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final] org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:117) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final] java.security.AccessController.doPrivileged(本机方法) [rt.jar:1.8.0_60]at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:474) [wildfly-security-manager-1.0.0.Final.jar:1.0.0.Final] org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:182) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_60]at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.060]位于java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_60]at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.1.Final.jar:2.1.1.Final]由以下原因引起: org.hibernate.HibernateException:缺少表:位于的POI_服务 org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1335) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:525) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1859) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:852) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final] org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:845) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final] org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.withTccl(ClassLoaderServiceImpl.java:398) [hibernate-core-4.3.7.Final.jar:4.3.7.Final] org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:844) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final] org.jboss.as.jpa.hibernate4.TwoPhaseBootstrapImpl.build(TwoPhaseBootstrapImpl.java:44) [jipijapa-hibernate4-3-1.0.1.Final.jar:] org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1$1.run(PersistenceUnitServiceImpl.java:154) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]。。。8个以上

2016-01-08 12:24:58786信息 [org.hibernate.tool.hbm2ddl.TableMetadata](服务器服务线程池 --57)HH000261:找到的表格:POIOPS.POI_SERVICE 2016-01-08 12:24:58788信息[org.hibernate.tool.hbm2ddl.TableMetadata] (ServerService线程池--57)HH000037:列:[最后一条记录, 申请,最后更新,id,最后更新日期]2016-01-08 12:25:00774信息 [org.hibernate.tool.hbm2ddl.TableMetadata](服务器服务线程池 --57)HH000261:找到的表格:POIOPS.IDENTIFICATION_请求2016-01-08 12:25:00775信息 [org.hibernate.tool.hbm2ddl.TableMetadata](服务器服务线程池 --57)HH000037:Columns:[sworkstationid、yafp2wsqimage、stransacationTime、created、stype、bretphoto、scardseqno、stranid、, breturnname、smode、requesttype、ssiteid、identificationresponse\u id、, sidn,id,yafp1wsqimage,更新,ifpind1,ifpind2]2016-01-08 12:25:05385信息[org.hibernate.tool.hbm2ddl.TableMetadata] (ServerService线程池--57)HH000261:找到表: POIOPS.IDENTIFICATION_响应2016-01-08 12:25:05387信息 [org.hibernate.tool.hbm2ddl.TableMetadata](服务器服务线程池 --57)HH000037:列:[bnameret、created、sfpind2、ScallCenter、ifp2score、stranid、SiDissuseDate、ierror、ifp1score、sfp1result、sidn、, sname、serror、sfp2result、sfpind1、yaphoto、ssmartcardind、id、, ssurname,更新]2016-01-08 12:25:09367信息 [org.hibernate.tool.hbm2ddl.TableMetadata](服务器服务线程池 --57)HH000261:找到的表格:POIOPS.IDENTIFICATIONREQUEST 2016-01-08 12:25:09369信息[org.hibernate.tool.hbm2ddl.TableMetadata] (ServerService线程池--57)HH000037:列:[sworkstationid, 响应者、yafp2wsqimage、传输时间、已创建、stype、, bretphoto、scardseqno、stranid、breturnname、smode、requesttype、, ssiteid、sidn、id、yafp1wsqimage、更新、ifpind1、ifpind2] 2016-01-08 12:25:15851信息
/**
 * Created by on 21-Dec-15.
 */
@Entity
@Table(name = "POI_SERVICE")
@PersistenceUnit(unitName = "POIExtractorPersistenceUnit")
@NamedQueries({
        @NamedQuery(name="findServiceRecordByApplicationName",
                query="SELECT pois FROM POIService pois WHERE pois.application = :applicationName")
})
public class POIService implements IEntity{

    @Id
    @GeneratedValue(generator="service_config_seq")
    @SequenceGenerator(name="service_config_seq", sequenceName="service_config_seq", allocationSize=1)
    private long id;

    private String application;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "last_update",nullable = false)
    private Date lastUpdate;

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "last_date",nullable = true)
    private Date lastDate;

    @Column(name = "last_record",nullable = true)
    private long lastRecord;

    @Override
    public long getId() {
        return id;
    }

    public String getApplication() {
        return application;
    }

    public void setApplication(String application) {
        this.application = application;
    }

    public Date getLastUpdate() {
        return lastUpdate;
    }

    public void setLastUpdate(Date lastUpdate) {
        this.lastUpdate = lastUpdate;
    }

    public Date getLastDate() {
        return lastDate;
    }

    public void setLastDate(Date lastDate) {
        this.lastDate = lastDate;
    }

    public long getLastRecord() {
        return lastRecord;
    }

    public void setLastRecord(long lastRecord) {
        this.lastRecord = lastRecord;
    }
}
<property name="hibernate.hbm2ddl.auto" value="validate" />