2014-01-13 62 views
0

我有一個Maven jar項目。使用JPA:Schema沒有在H2中創建

我已經配置JBoss的standalone.xml如下:

<datasources> 
    <datasource jndi-name="java:jboss/datasources/myDS" pool-name="myDS" enabled="true" use-java-context="true"> 
     <connection-url>jdbc:h2:tcp://localhost/C:\databases\test</connection-url>     
      <driver>h2</driver> 
      <security> 
       <user-name>sa</user-name> 
      </security> 
     </datasource> 
     <drivers> 
       <driver name="h2" module="com.h2database.h2"> 
       <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
      </driver> 
     </drivers> 
</datasources> 

而且的persistence.xml文件如下:

<persistence-unit name="primary" transaction-type="JTA"> 

    <jta-data-source>java:jboss/datasources/myDS</jta-data-source> 

    <class>my.package.Person</class> 

    <properties> 
     <!-- Properties for Hibernate --> 
     <property name="hibernate.hbm2ddl.auto" value="create" /> 
     <property name="dialect" value="org.hibernate.dialect.H2Dialect" /> 
     <property name="hibernate.show_sql" value="true" /> 
    </properties> 
</persistence-unit> 

首先,我用H2控制檯進行身份驗證。然後我安裝我的jar「Maven install」。

但不幸的是,架構沒有創建。可能缺少什麼?

非常感謝。

回答

1

請您standalone.xml創建數據源,安全性和司機

<subsystem xmlns="urn:jboss:domain:datasources:1.1"> 
    <datasource jta="true" jndi-name="java:jboss/datasources/myDataSource" pool-name="myDataSource" enabled="true" use-ccm="false"> 
        <connection-url>jdbc:mysql://localhost:3306/testDB</connection-url> 
        <driver-class>com.mysql.jdbc.Driver</driver-class> 
        <driver>mysql</driver> 
    <security> 
      <user-name>root</user-name> 
      <password>root</password> 
     </security> 
    <drivers> 
       <driver name="h2" module="com.h2database.h2"> 
       <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> 
       </driver> 
       <driver name="mysql" module="com.mysql"> 
       <xa-datasource-class>com.mysql.jdbc.Driver</xa-datasource-class> 
       </driver> 
     </drivers> 
</datasources> 
</subsystem> 

使persistence.xml中 一個變化創建持久性單元和交易類型。 創建和屬性。

<persistence-unit name="abc" transaction-type="JTA"> 

    <jta-data-source>java:jboss/datasources/myDataSource</jta-data-source> 

    <class>my.package.ClassName</class> 

    <properties> 
     <!-- Properties for Hibernate --> 
     <property name="hibernate.hbm2ddl.auto" value="create" /> 
     <property name="dialect" value="org.hibernate.dialect.H2Dialect" /> 
     <property name="hibernate.show_sql" value="true" /> 
    </properties> 
</persistence-unit> 

創建一個Java類HibernateUtil.java 並提供持久性單元名稱的entityManagerFactory = Persistence.createEntityManagerFactory( 「ABC」);

public class HibernateUtil { 

    private static final EntityManagerFactory entityManagerFactory; 
    static { 
       try { 
        entityManagerFactory = Persistence.createEntityManagerFactory("abc"); 
        System.out.println("Entity Menager Test.............."+ entityManagerFactory); 
       } catch (Throwable ex) { 

        System.err.println("Initial SessionFactory creation failed." + ex); 
        throw new ExceptionInInitializerError(ex); 

        } 
    } 

public static EntityManagerFactory getEntityManagerFactory() { 
     return entityManagerFactory; 
    } 

} 
+0

謝謝你的寶貴回答:) – user3169231