`
txf2004
  • 浏览: 6830604 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hibernate.hbm2ddl.auto节点配置

 
阅读更多
hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:
<properties>
<property name="hibernate.show_sql" value="true" /><wbr><wbr><wbr><wbr><wbr><br style="line-height:normal"> &lt;property name="hibernate.hbm2ddl.auto" value="create" /&gt;<br style="line-height:normal"> &lt;/properties&gt;</wbr></wbr></wbr></wbr></wbr>

Hibernate Reference Documentation 3.3.1解释如下:
Automatically validate or export schema DDL to the database when the SessionFactory is created.
With create-drop, the database schema will be dropped when the SessionFactory is closed explicitly.
eg. validate | update | create | create-drop

<wbr></wbr>


其实这个hibernate.hbm2ddl.auto参数的作用主要用于:自动创建|更新|验证数据库表结构。如果不是此方面的需求建议set value="none"。
create:
每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
create-drop :
每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
update:
最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
validate :
每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

再说点“废话”:
当我们把hibernate.hbm2ddl.auto=create时hibernate先用hbm2ddl来生成数据库schema。
当我们把hibernate.cfg.xml文件中hbm2ddl属性注释掉,这样我们就取消了在启动时用hbm2ddl来生成数据库schema。通常只有在不断重复进行单元测试的时候才需要打开它,但再次运行hbm2ddl会把你保存的一切都删除掉(drop)---- create配置的含义是:“在创建SessionFactory的时候,从scema中drop掉所以的表,再重新创建它们”。
注意,很多Hibernate新手在这一步会失败,我们不时看到关于Table not found错误信息的提问。但是,只要你根据上面描述的步骤来执行,就不会有这个问题,因为hbm2ddl会在第一次运行的时候创建数据库schema,后续的应用程序重启后还能继续使用这个schema。假若你修改了映射,或者修改了数据库schema,你必须把hbm2ddl重新打开一次。

分享到:
评论

相关推荐

    hibernate.hbm2ddl.auto属性详解

    详解hibernate.hbm2ddl.atuo 属性的配置

    hibernate.hbm.xml详解

    对hibernate.hbm.xml解释很详细~ 开发的时候很有用的哦~!

    hibernate.queries.hbm.xml

    hibernate.queries.hbm.xml这个文件需要放在jbpm*(版本).jar中。。的org.jbpm.db目录下,先删除以前的文件,然后,换上共享中这个。。大家可以用文件比较器看看,并没有改变以前的,只是新加了。。

    Hibernate常用操作示例

    Hibernate常用操作示例,包含详细注释说明,数据库初始化文件。使用和学习请参考:http://blog.csdn.net/daijin888888/article/details/51692942

    hibernate3 配置hbm2ddl和hbm2java所需jar

    hibernate3 配置hbm2ddl和hbm2java所需jar,里面包含了所有的jar,如:hibernate3的相关jar、hibernate-tools.jar等。

    hibernate325ga+struts2011+spring25实现crud

    部署时,可修改web-inf/config/spring/applicationContext.xml文件,修改相应的数据库信息,把把&lt;prop key="hibernate.hbm2ddl.auto"&gt;update 改为&lt;prop key="hibernate.hbm2ddl.auto"&gt;create即可自动创建表 我自己写的...

    Spring3+hibernate4+Struts2图书管理系统

    2.修改applicationContext.xml文件中hibernate.hbm2ddl.auto的值为create而不是update 3.修改数据库的连接信息(数据库,用户名,密码) 4.部署到Tomcat服务器上面,然后运行 5.在浏览器中输入...

    javaee 书上的Customer程序

    怎样运用Hibernate hibernate.dialect=org.hibernate.dialect.SQLServerDialect hibernate.connection.driver_class=... hibernate.hbm2ddl.auto=create hibernate.show_sql=true

    hbm2ddl属性hbm2ddl属性

    hbm2ddl属性hbm2ddl属性hbm2ddl属性hbm2ddl属性hbm2ddl属性hbm2ddl属性

    优化Hibernate性能的几点建议

    <prop key="hibernate.hbm2ddl.auto">update</prop> --> !-- Turn batching off for better error messages under PostgreSQL <prop key="hibernate.jdbc.batch_size">100</prop> --> <prop key="...

    详解hibernate自动创建表的配置

    ”hibernate.hbm2ddl.auto”&gt;update&lt;/prop&gt;//首次创建项目时用,项目稳定后一般注释这里有4个值: update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表;如果表里...

    hibernate.properties

    #hibernate.hbm2ddl.auto create-drop #hibernate.hbm2ddl.auto create #hibernate.hbm2ddl.auto update #hibernate.hbm2ddl.auto validate ## specify a default schema and catalog for unqualified tablenames ...

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part2

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    hibernate-tools(包含版本3、版本5)解决hbm.xml中文注释乱码和生成实体类注释

    在eclipse上通过hibernate工具,将数据库表生成Java类和xml配置文件 总共有2个版本,根据自己的需求使用版本3或者5: 1. hibernate-tools-3.4.0.CR2.jar是修改完成的jar包,直接替换原来的jar包, 重启eclipse即可...

    hibernate。hbm.xml配置详解

    hibernate。hbm.xml配置详解.doc hibernate。hbm.xml配置详解.doc hibernate。hbm.xml配置详解.doc

    Hibernate开发jar包

    &lt;property name="hibernate.hbm2ddl.auto"&gt;update &lt;!-- 配置C3P0的连接池 --&gt; &lt;property name="connection.provider_class"&gt;org.hibernate.connection.C3P0ConnectionProvider &lt;!-- 映射配置文件 -...

    08.拓薪教育-hibernate4.3的hibernate.cfg.xml基本配置.part1

    高级Hibernate4开发技术:ORM思想,hibernate介绍,hibernate.cfg.xml配置,hbm.xml映射文件详解,主键生成策略使用,PO对象状态及状态的转换分析、一级缓存,Hibernate数据检索技术,Hibernate高级映射技术,...

    根据实体类自动生成hibernate的hbm.xml映射文件

    请输入包的名称和映射文件需要放到的文件夹之后运行CreateTableXml里的main方法,就可以自动生成映射文件了。记着刷新文件夹,要不然是看不到的。 当然只是一些基础的属性。对于一些比较复杂,还是需要自己来修改的...

    Ext Demo grid的增删改查例子

    接下来 在mysql里建立 数据库位ext的库 ...-- &lt;property name="hibernate.hbm2ddl.auto" value="update" /&gt; --&gt;这句话的注释去掉 好了 部署项目到tomcat上 启动 输入地址 项目部署的过程中会自动生成 表的

    Hibernate4的全套jar包,及hbm.xml(模板)+hibernate.cfg.xml(模板)+c3p0(全套)+ojdbc14.jar

    Hibernate4的全套jar包,及hbm.xml(模板)+hibernate.cfg.xml(模板)+c3p0(全套)+ojdbc14.jar

Global site tag (gtag.js) - Google Analytics