2012-02-09 5 views
0

HibernateをHSQLデータベースのORMに使用しているSpring MVCのアプリケーションがあります。問題は、アプリケーションを起動するときにデータベーステーブルを削除して作成したいということです。HSQLでHibernate - Tomcatでアプリケーションを起動するときにテーブルが作成されない

<beans:prop key="hibernate.hbm2dll.auto">drop-create</beans:prop> 

は、私が「更新」と「作成」試してみましたが、結果は同じです:Hibernateのドキュメントを通して読むと、私は次のHibernateの設定を設定する必要があることを見たアプリケーションが起動し、を見つけようとするとき、私の最初のテーブルは、作成されていないためできません。私はテーブルの注釈を使用しています。これは私が得るエラーメッセージです:

Hibernate: select this_.ID as ID1_0_, this_.CITY as CITY1_0_, this_.TEAMNAME as TEAMNAME1_0_ from TEAM this_ 
WARN : org.hibernate.util.JDBCExceptionReporter - SQL Error: -5501, SQLState: 42501 
ERROR: org.hibernate.util.JDBCExceptionReporter - user lacks privilege or object not found: TEAM 

ここで問題は何ですか?背景情報の関連ファイルを次に示します。ありがとう。

サーブレットのcontext.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/mvc" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 
    xmlns:beans="http://www.springframework.org/schema/beans" 
    xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 
     http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 


    <!-- DispatcherServlet Context: defines this servlet's request-processing 
     infrastructure --> 

    <!-- Enables the Spring MVC @Controller programming model --> 
    <annotation-driven /> 
    <!-- Enables the transactional annotations --> 
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven> 

    <!-- Handles HTTP GET requests for /resources/** by efficiently serving 
     up static resources in the ${webappRoot}/resources directory --> 
    <resources mapping="/resources/**" location="/resources/" /> 

    <!-- Connection to Database 

    ***** hsqldb.lock_file=false ***** 

    --> 
    <beans:bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 
     <beans:property name="driverClassName" value="org.hsqldb.jdbcDriver" /> 
     <beans:property name="url" value="jdbc:hsqldb:G:/SpringProjects/MVCProj1/database;shutdown=true" />          
     <beans:property name="username" value="ryan" /> 
     <beans:property name="password" value="ryan" /> 
    </beans:bean> 

    <!-- Resolves views selected for rendering by @Controllers to .jsp resources 
     in the /WEB-INF/views directory --> 
    <!-- View Resolver --> 
    <beans:bean 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <beans:property name="prefix" value="/WEB-INF/views/" /> 
     <beans:property name="suffix" value=".jsp" /> 
    </beans:bean> 

    <!-- MessageSource --> 
    <beans:bean 
     class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
     <beans:property name="basename" value="classpath:messages" /> 
     <beans:property name="defaultEncoding" value="UTF-8" /> 
    </beans:bean> 

    <!-- Hibernate SessionFactory --> 
    <!-- <beans:bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> this was the original working bean class 2/3/12--> 

     <beans:bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <beans:property name="dataSource" ref="datasource"></beans:property> 
     <beans:property name="configLocation" value="classpath:hibernate.cfg.xml"></beans:property> 
     <beans:property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"></beans:property> 
     <beans:property name="annotatedClasses"> 
      <beans:list> 
       <beans:value>com.ryans.MVCproject1.Team</beans:value> 
       <beans:value>com.ryans.MVCproject1.Player</beans:value> 
      </beans:list> 

     </beans:property> 
     <beans:property name="hibernateProperties"> 
      <beans:props> 
       <beans:prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</beans:prop> 
       <beans:prop key="hibernate.show_sql">true</beans:prop> 
       <beans:prop key="hibernate.hbm2dll.auto">update</beans:prop> 
      </beans:props> 
     </beans:property> 
    </beans:bean> 



    <!-- Define a transaction Manager --> 
    <beans:bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
    <beans:property name="sessionFactory" ref="sessionFactory"></beans:property> 
    </beans:bean> 

    <context:component-scan base-package="com.ryans.MVCproject1" /> 


</beans:beans> 

hibernate.cfg.xmlの

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
    <session-factory> 
     <mapping class="com.ryans.MVCproject1.Player"/> 
     <mapping class="com.ryans.MVCproject1.Team"/> 
    </session-factory> 

</hibernate-configuration> 

答えて

2

あなたはhibernate.hbm2dll.autoを使用しています。 DLL =ダイナミックリンクライブラリ。

正しいプロパティはhibernate.hbm2ddl.autoです。 DDL =データ定義言語。

+0

ああ。何度もこのことを見ても、私はその愚かなタイプミスを捕まえていませんでした。鋭い目を持ってくれてありがとう。 :) – captainduh

関連する問題