`
run_wang
  • 浏览: 168789 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点

 
阅读更多
hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下:
<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
</properties>

在JBPM4中就有这么一个参数配置,JBPM需要创建自己的一些基础表,所以不管你用哪个数据库,运行jbpm的实例后,Hibernate都会根据这个参数配置和pojo类取自动创建对应的表结构。

其实这个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.auto的value置为none,或者置为validate比较好,只验证表结构是否正确。而数据表结构手动来生成。
分享到:
评论

相关推荐

    hibernate.cfg.xml

    hibernate.cfg.xml hibernate框架的配置文件

    Hibernate配置文件hibernate.cfg.xml中配置信息详解

    Hibernate配置文件hibernate.cfg.xml中配置信息详解!

    hibernate.cfg.xml文件

    《深入理解Hibernate配置文件hibernate.cfg.xml》 在Java应用程序开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它简化了数据库操作,将数据库操作与业务逻辑解耦。而`hibernate.cfg.xml`是Hibernate...

    hibernate.cfg.xml 配置 和数据库驱动

    在实际开发中,我们通常会将`hibernate.cfg.xml`配置文件放在类路径下,以便于Hibernate加载。此外,也可以使用编程方式动态创建SessionFactory,但配置文件方式更加直观且易于维护。 总的来说,`hibernate.cfg.xml...

    spring如何摒弃hibernate.cfg.xml

    在现代的Spring应用程序中,整合Hibernate时,我们通常会选择使用Spring的IoC(Inversion of Control)容器来管理数据访问层,而不是直接依赖于Hibernate的配置文件`hibernate.cfg.xml`。这是因为Spring提供了更高级...

    Hibernate.cfg.xml配置总结

    在Hibernate.cfg.xml中,数据源的配置分为两种方式:JDBC直连和JNDI查找。JDBC直连是直接在配置文件中提供数据库连接的相关信息,如数据库驱动、URL、用户名和密码。而JNDI查找则是通过Java Naming and Directory ...

    ssh整合,不带hibernate.cfg.xml的方式

    在压缩包文件`ssh_inte2`中,可能包含了示例代码或者更详细的配置文件,用于展示如何不使用`hibernate.cfg.xml`完成SSH整合。如果你需要深入理解这个过程,建议查看这些文件,结合本文中的解释进行学习。 总的来说...

    hibernate配置文件hibernate.cfg.xml的详细解释

    在Java持久化框架Hibernate中,`hibernate.cfg.xml`是核心配置文件之一,它用于配置Hibernate的运行环境,包括数据库连接信息、性能参数以及其他高级配置选项等。正确配置此文件对于Hibernate的高效稳定运行至关重要...

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

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

    Hibernate配置文件hibernate.cfg.xml范本

    这是Hibernate的配置文件,hibernate.cfg.xml的具体写法,共友友们参考~~谢谢~

    hibernate.cfg.xml文件详细解释

    `hibernate.cfg.xml` 是 Hibernate 框架的核心配置文件之一,它主要用于配置 Hibernate 的运行环境。通过该文件,开发者可以指定数据库连接信息、日志级别、性能优化参数等关键配置。正确配置此文件对于 Hibernate ...

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

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

    hibernate.cfg.xml所有属性值

    hibernate.cfg.xml中各节点的所有属性值,取自hibernate官网,纯天然无污染。原装!

    (hibernate调用C3p0)hibernate.cfg.xml

    (hibernate调用C3p0)hibernate.cfg.xml

    JavaEE spring和Hibernate整合(有hibernate.cfg.xml)

    通常,会使用HibernateTransactionManager作为事务管理器,并通过Bean来注入hibernate.cfg.xml中的配置。 4. 定义DAO接口和实现:创建数据访问对象(DAO)接口,然后提供一个实现类。在实现类中,注入...

    hibernate.cfg.xml中配置信息详解

    Hibernate.cfg.xml 是 Hibernate 框架中的一份核心配置文件,用于配置 Hibernate 的行为和性能。该文件中包含了多个配置属性,用于控制 Hibernate 的各种功能和特性。本文将对 Hibernate.cfg.xml 中的配置信息进行...

    Hibernate的........htm.xml和hibernatecfg.xml配置

    `.hbm.xml`文件用于映射数据库表和Java类之间的关系,而`hibernate.cfg.xml`则是Hibernate的整体配置文件,包含了数据库连接、事务管理等核心设置。 ** Hibernate基础知识 ** Hibernate是一款流行的Java持久化框架...

Global site tag (gtag.js) - Google Analytics