【问题标题】:hibernate.hbm2ddl.auto property creates table with create but not with updatehibernate.hbm2ddl.auto 属性使用 create 而非 update 创建表
【发布时间】:2019-03-20 13:35:01
【问题描述】:

<property name="hbm2ddl.auto">update</property> 设置不会自动创建数据库表。

它适用于<property name="hbm2ddl.auto">create</property>

配置:

<?xml version="1.0" encoding="UTF-8"?>

<bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
        value="com.mysql.cj.jdbc.Driver"></property>
    <property name="url"
        value="jdbc:mysql://localhost:3306/StrutsPractice"></property>
    <property name="username" value="root"></property>
    <property name="password" value="root"></property>
</bean>

<bean id="mysessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>

    <property name="mappingResources">
        <list>
            <value>com/hbm/person.hbm.xml</value>
        </list>
    </property>


    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
            <prop key="hibernate.show_sql">true</prop>
        </props>
    </property>
</bean>

<bean id="d" class="com.DAO.PersonDAO">
    <property name="sf" ref="mysessionFactory"></property>
</bean>

如果数据库中不存在表,则应自动创建。

【问题讨论】:

  • 休眠版本?
  • Hibernate 版本是 4.0.0.Final
  • 把你的方言改成 org.hibernate.dialect.MySQLDialect 然后试试

标签: hibernate hbm2ddl


【解决方案1】:

hbm2ddl.auto的可能取值及其描述如下:

create - 创建架构

update - 更新现有架构

validate - 验证现有架构

create-drop - 在会话开始和结束时自动创建和删除模式

【讨论】:

    猜你喜欢
    • 2016-09-08
    • 1970-01-01
    • 2020-04-12
    • 2015-02-02
    • 2019-01-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多