Hibernate使用自定义脚本替换注解或者xml文件中的自动生成表结构

本文作者:苏生米沿

本文地址:http://blog.csdn.net/sushengmiyan/article/details/50534361

我们都清楚,可以使用hibernate的metadata元数据生成表结构,但是一般情况下,我们光靠hibernate的自动生成是远远不够的,我们期待使用自己的sql脚本,你hibernate自动执行那个脚本就可以。那么hibernate支持不支持呢?答案是yes!

只需要我们做以下设置:

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

			<property name="hibernate.hbm2ddl.import_files_sql_extractor" value="org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor"/>
			<property name="javax.persistence.schema-generation.database.action"  value="drop-and-create"/>
			<property name="javax.persistence.schema-generation.create-source" value="script"/>
			<property name="javax.persistence.schema-generation.create-script-source" value="META-INF/complexschemas/LoadScript.sql.txt"/>

解释以下:

1.hibernate.hbm2ddl.auto设置每次都生成数据库表结构

2.hibernate.hbm2ddl.import_files_sql_extractor 开启脚本多行执行。

3.javax.persistence.schema-generation.database.action 数据库每次都是先drop再重新生成

4.javax.persistence.schema-generation.create-source 生成方式是自定义的脚本

5.javax.persistence.schema-generation.create-script-source 脚本的位置。

参考:

http://docs.oracle.com/javaee/7/tutorial/persistence-intro005.htm

时间: 2024-08-08 13:46:07

Hibernate使用自定义脚本替换注解或者xml文件中的自动生成表结构的相关文章

Hibernate框架hibernate.cfg.xml配置文件,配置自动生成表结构策略。

<property name="hbm2ddl.auto"></property> key -- hbm2ddl.auto:自动生成表结构策略 value -- update(使用最多):当数据库不存在表时,hibernate启动后会自动生成表结构. 当数据库表存在时,如果一样,则只会写入数据,不会改变表结构. 当数据库表存在时,如果不一样,则会修改表结构,原有的表结构不会改变.  create(很少):无论表结构是否存在,hibernate启动后都会重新生成表

XML文件中关键字自动提示和不全配置

一.获得mybatis-3-config.dtd.mybatis-3-mapper.dtd 这两个文件. 建立一个Maven的项目 在Pom.xml文件中的Mybatis jar包的下载设置(也可以从网上直接找到需要的两个dtd文件).     步骤阅读 2 得到mybatis-3.1.1. jar包的位置 步骤阅读 3 找到mybatis-3.1.1. jar所在的文件夹 步骤阅读 4 将其复制到D:\MyBatis代码自动提示 文件夹下 步骤阅读 5 然后解压,得到mybatis-3-con

Spring 注解与xml文件混合声明bean

在spring中,使用xml文件配置bean的方式比较繁琐,但是具有一定的灵活性,在不更改源代码的情况下就可以更改程序配置或者更改以来关系:使用注解配置的方式高效,但是失去了xml文件的灵活性. 在这种情况下,我们可以使用xml文件与注解混合使用的方式进行配置bean,在不需要更改属性上可以使用注解的方式进行配置,但是在这个类上面不要使用@Component或者@Controller或者@Serverce等自动装配的注解,否则在xml文件中声明同一个类的bean时,在spring容器中会出现多个

Android中layout.xml文件中加载自定义的View类

<com.bn.summer.GGView3 android:layout_width="100dip" android:layout_height="114dip" android:layout_marginLeft="11dip" /> View类的实现: package com.bn.summer; import android.content.Context; import android.content.res.Resour

web.xml文件中的7个错误的安全配置

关于Java的web.xml文件中配置认证和授权有大 量 的 文章.本文不再去重新讲解如何配置角色.保护web资源和设置不同类型的认证,让我们来看看web.xml文件中的一些常见的安全错误配置. (1) 自定义的错误页面没有配置 默认情况下,Java Web应用在发生错误时会将详细的错误信息展示出来,这将暴露服务器版本和详细的堆栈信息,在有些情况下,甚至会显示Java代码的代码片段.这些信息对为他们的病毒需找更多信息的黑客来说是一种恩惠.幸运的是,通过配置web.xml文件来展示自定义的错误页面

不在JPA 的 persistence.xml 文件中配置Entity class的解决办法

在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,2种方法可以解决此问题: 这2种方式都可以实现不用在persistence.xml文件中配置每一个实体类,从而免去每个Entity都要在persistence.xml文件中配置的烦恼,但是这种方式Entity实体类的主键字段注解@ID要放到 getXXX()方法上,否则不认. 方式1: 修改“LocalContainerEntityManagerFactoryBea

JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法

原文:JPA 不在 persistence.xml 文件中配置每个Entity实体类的2种解决办法 在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,远哥目前找到了2种方法. 这2种方式都可以实现不用persistence.xml文件,免去每个Entity都要在persistence.xml文件中配置的烦恼,但是这种方式Entity实体类的主键字段注解@ID要放到 getXXX()方法上,否则不认. 方式1: 修改

spring将service添加事务管理,在applicationContext.xml文件中的设置

在applicationContext.xml文件中的设置为: 1 <beans> 2 <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 3 <property name="dataSource" ref="dataSource"

菜鸟学SSH(十一)——Hibernate之SchemaExport+配置文件生成表结构

今天说点基础的东西,说说怎样通过SchemaExport跟Hibernate的配置文件生成表结构.事实上方法很easy,仅仅须要两个配置文件,两个Java类就能够完毕. 首先要生成表,得先有实体类,以Person.java为例: /** * * @author Administrator * @hibernate.class table="T_Person" */ public class Person { /** * @hibernate.id * generator-class=&