2012-09-06 179 views
1

我正在使用JPA(Hibernate)和Spring项目这些天,我配置了spring,jpa并尝试在tomcat7上部署应用程序,因为我知道jpa/hibernate使用实体类创建表第一次加载,但是在应用程序启动时,我看不到数据库和应用程序之间的任何连接,下面您可以看到我的配置,我看到很多关于此问题的问题,我无法找到适当的解决方案。tomcat的jpa(Hibernate)春天

任何一个可以告诉我是什么问题了这儿过得创建的应用程序,而不在码头服务器的任何问题的某个时候回来, 预先感谢您

的applicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xmlns:p="http://www.springframework.org/schema/p" 
     xsi:schemaLocation="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/tx 
          http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" 
     default-lazy-init="true"> 

    <!-- Use @Transaction annotations for managing transactions --> 
    <!--<tx:annotation-driven/>--> 

    <!-- holding properties for database connectivity/--> 
    <context:property-placeholder location="classpath:jdbc.properties"/> 

    <tx:annotation-driven proxy-target-class="true" /> 
    <!-- Activates scanning of @Autowired --> 
    <context:annotation-config/> 

    <!-- Activates scanning of @Repository --> 
    <context:component-scan base-package="lk.gov.elg"/> 

    <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 

    <tx:annotation-driven transaction-manager="transactionManager" /> 

    <bean id="dataSource" 
      class="org.springframework.jdbc.datasource.DriverManagerDataSource" 
      p:driverClassName="${jdbc.driverClassName}" 
      p:url="${jdbc.url}" 
      p:username="${jdbc.username}" 
      p:password="${jdbc.password}"/> 

    <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" 
      p:entityManagerFactory-ref="entityManagerFactory" 
      p:dataSource-ref="dataSource"/> 

    <bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
     <property name="dataSource" ref="dataSource"/> 
    </bean> 

    <bean id="entityManagerFactory" 
      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" 
      p:dataSource-ref="dataSource" 
      p:jpaVendorAdapter-ref="jpaAdapter"> 
     <property name="persistenceUnitName" value="eLGPersistenceUnit"></property> 
     <property name="loadTimeWeaver"> 
      <bean class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver"/> 
     </property> 
    </bean> 

    <!-- Jpa adapter for the Hibernate --> 
    <bean id="jpaAdapter" 
      class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" 
      p:databasePlatform="org.hibernate.dialect.MySQLDialect" 
      p:generateDdl="true" 
      p:showSql="true" > 
    </bean> 

    <bean 
      class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor"/> 

    <bean 
      class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/> 
</beans> 

persistance.xml

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" 
      xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="eLGPersistenceUnit" 
         transaction-type="RESOURCE_LOCAL"> 
    <!--transaction-type="JTA">--> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <properties> 
      <property name="hibernate.hbm2ddl.auto" value="validate"/> 
     </properties> 
     <!--<provider>org.hibernate.ejb.HibernatePersistence</provider>--> 
    </persistence-unit> 
</persistence> 
+0

什么是你想实现与默认延迟实例= TRUE;? –

+0

谢谢指出,我意识到我删除了那个属性,但仍然没有在db中创建表 – ExCode

回答

0

我想有一个与您的配置,尝试删除后无问题“默认延迟实例=真” attribu TE

干杯

+0

谢谢,删除之后出现异常,我修正了 – ExCode

0

尝试改变:

<property name="hibernate.hbm2ddl.auto" value="validate"/> 

到:

<property name="hibernate.hbm2ddl.auto" value="update"/> 

或:

<property name="hibernate.hbm2ddl.auto" value="create"/> 
+0

谢谢,我已经试过这些属性,但是问题不在于这些属性,我解决了它 – ExCode