首页 > 解决方案 > hibernate.hbm2ddl.auto = 'update' 没有创建表,因为表存在于另一个数据库中。可能是什么原因

问题描述

以下是 JPA 休眠配置

<bean id="entityManagerFactory"
           class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
           <property name="dataSource" ref="dataSource" />
           <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
           <property name="packagesToScan" value="*****" />
           <property name="jpaProperties">
               <props>
                   <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
                   <prop key="hibernate.hbm2ddl.auto">update</prop>
                   <prop key="hibernate.show_sql">false</prop>
                   <prop key="hibernate.format_sql">false</prop>
               </props>
           </property>
       </bean>

在tomcat 7 server.xml文件中跟随数据源

<Resource name="jdbc/Pool"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
              auth="Container"
              type="javax.sql.DataSource"             
              username="root"
              password="root"
              driverClassName="com.mysql.cj.jdbc.Driver"
              url="jdbc:mysql://localhost:3306/cc_db?autoReconnect=true&amp;useSSL=false&amp;allowPublicKeyRetrieval=true"
              testWhileIdle="true"
              testOnBorrow="true"
              testOnReturn="false"
              validationQuery="SELECT 1"
              validationInterval="30000"
              timeBetweenEvictionRunsMillis="30000"
              maxActive="100"
              minIdle="10"
              maxWait="10000"
              initialSize="10"
              removeAbandoned="true"
              logAbandoned="true"
              minEvictableIdleTimeMillis="30000"
              maxTotal="10"
              maxIdle="10"
              maxWaitMillis="10000"
              removeAbandonedTimeout="300"           
              defaultAutoCommit="true" />

以下是在 catlina.log 文件中生成的日志,我已经修剪了日志以突出我的观点

2021-09-16 18:54:48,084 INFO  [org.hibernate.tool.hbm2ddl.TableMetadata] - HHH000261: Table found: cc_db.table_abc
2021-09-16 18:54:48,084 INFO  [org.hibernate.tool.hbm2ddl.TableMetadata] - HHH000108: Foreign keys: []
2021-09-16 18:54:48,084 INFO  [org.hibernate.tool.hbm2ddl.TableMetadata] - HHH000126: Indexes: [primary]
2021-09-16 18:54:48,156 INFO  [org.hibernate.tool.hbm2ddl.TableMetadata] - HHH000261: Table found: cc_db_back.table_def 

所以'table_def'没有在'cc_db'中创建,因为它在我的备份'cc_db_back'数据库中退出。有什么建议吗?

标签: javahibernatejpa

解决方案


推荐阅读