2017-09-15 13 views
1

SpringとHibernateで私のWebプロジェクトを設定しました。以下はPOMである:Spring + Hibernate - MySQLでテーブルが作成されない

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.medosa</groupId> 
    <artifactId>MedoSa-backend</artifactId> 
    <version>1</version> 
    <packaging>war</packaging> 
    <name>MedoSa-backend</name> 
    <description>A hand for a needed hand</description> 

    <properties> 
     <jdk.version>1.8</jdk.version> 
     <spring.version>4.3.4.RELEASE</spring.version> 
     <jackson.version>1.9.13</jackson.version> 
     <hibernate.version>4.3.11.Final</hibernate.version> 
    </properties> 

    <repositories> 
     <repository> 
      <id>JBoss repository</id> 
      <url>http://repository.jboss.com/maven2/</url> 
     </repository> 
    </repositories> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>4.3.4.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>1.7.3</version> 
     </dependency> 

     <dependency> 
      <groupId>org.codehaus.jackson</groupId> 
      <artifactId>jackson-mapper-asl</artifactId> 
      <version>${jackson.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.9</version> 
     </dependency> 

     <!-- Hibernate library dependecy start --> 
     <dependency> 
      <groupId>com.jolbox</groupId> 
      <artifactId>bonecp</artifactId> 
      <version>0.8.0.RELEASE</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.1.0.Final</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
     </dependency> 
     <!-- Hibernate framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>${hibernate.version}</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.4.1.Final</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations --> 
     <!-- <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.5.6-Final</version> 
     </dependency> --> 
    </dependencies> 

    <build> 
     <finalName>MedoSa-Backend</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <target>${jdk.version}</target> 
        <source>${jdk.version}</source> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

以下は私のディスパッチャ-servlet.xmlファイルであります http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd ">

<context:component-scan base-package="com.medosa" /> 
<mvc:annotation-driven /> 

<context:property-placeholder location="classpath:AppConfig.properties" /> 

<!-- BoneCP configuration --> 
<bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource" 
    destroy-method="close"> 
    <property name="driverClass" value="${db.driverClassName}" /> 
    <property name="jdbcUrl" value="${db.url}" /> 
    <property name="username" value="${db.username}" /> 
    <property name="password" value="${db.password}" /> 
    <property name="idleConnectionTestPeriod" value="60" /> 
    <property name="idleMaxAge" value="240" /> 
    <property name="maxConnectionsPerPartition" value="30" /> 
    <property name="minConnectionsPerPartition" value="10" /> 
    <property name="partitionCount" value="3" /> 
    <property name="acquireIncrement" value="5" /> 
    <property name="statementsCacheSize" value="100" /> 
    <property name="releaseHelperThreads" value="3" /> 
</bean> 

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">${db.dialect}</prop> 
      <prop key="hibernate.hbm2ddl.auto">create-drop</prop> 
      <prop key="hibernate.show_sql">true</prop> 
     </props> 
    </property> 
</bean> 

<tx:annotation-driven /> 
<bean id="transactionManager" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate4.HibernateTemplate"> 
    <property name="sessionFactory" ref="sessionFactory" /> 
</bean> 
<bean id="persistenceExceptionTranslationPostProcessor" 
    class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" /> 

私は私のモデルクラスを作成しました。 @Entityで注釈を付けました。作成するhbm2ddlプロパティも設定しました。それでも、サーバーにデプロイしようとしているときは、テーブルを生成していません。またエラーもありません。

Googleですべてのソリューションを検索しようとしましたが、多くのことを試しましたが機能しませんでした。 あなたの親切な助けに感謝します

+0

何の実体はありません。あなたの 'LocalSessionFactoryBean'に' packagesToScan'を指定しますエンティティを検出する。 –

+0

本当にありがとう!それは私のために働いた。 –

答えて

1

モデルクラスのクラスパスを追加していないようです。これはsessionFactoryに追加できます。
</property>タグの後、例えば

<mapping class="<full class path>"/> 

を追加 - <mapping class="com.hibernate.UserDetails">

をまた、SQL文が表示されている場合は、あなたのコンソールを確認してください。スキーマを作成し、場合、SessionFactoryをクローズしたとき、スキーマをドロップします。表は、CREATE、その後DROP、

が作成・ドロップをするので<prop key="hibernate.hbm2ddl.auto">create</prop>
または<prop key="hibernate.hbm2ddl.auto">update</prop>

<prop key="hibernate.hbm2ddl.auto">create-drop</prop> 

を交換して取得している場合通常、アプリケーションが停止したときに発生します。

update:モデルクラスに変更がある場合は、スキーマと更新を作成します。データベースとして使用するより安全なオプションは、Deletedを取得しないか、サーバーの再起動時にデータに影響を与えません。

create:以前のデータを破棄してスキーマを作成します。 (初回のみそれを使用するか、あなたのサーバーを再起動する次回を破壊されている全てのデータをもたらすことができる。

はそれが役に立てば幸い!

関連する問題