hibernate.hbm2ddl.import_files_sql_extractor

这个配置项用于补充这篇文章:

http://blog.csdn.net/stefwu/article/details/10584161

在这篇文章中,我们提到,如果使用了自己的SQL文件,在SQL文件中的SQL就只能是一条SQL一行,不能格式化。如果你的SQL是格式化了的,或者在你的SQL里面甚至有特殊的内容需要处理之后才能执行,那么你只需要配置一个hibernate.org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor就可以了。这个配置需要一个ImportSqlCommandExtractor接口的实现(这个接口其实是一个Service,关于Service是hibernate4的一个非常重要的改变,后面再慢慢介绍),这个接口的作用就是用于从Reader里面解析出一条一条能够直接执行的SQL命令。

在hibernate提供了两个默认的ImportSqlCommandExtractor:一个是MultipleLinesSqlCommandExtractor,一个是SingleLineSqlCommandExtractor,从名字上面就能很明显的看到,一个可以用于解析SQL分散到多行的情况,一个只能用于解析单行的SQL,默认情况下hibernate使用的是:SingleLineSqlCommandExtractor:

  public class ImportSqlCommandExtractorInitiator implements BasicServiceInitiator<ImportSqlCommandExtractor> {
   public static final ImportSqlCommandExtractorInitiator INSTANCE = new ImportSqlCommandExtractorInitiator();
   public static final ImportSqlCommandExtractor DEFAULT_EXTRACTOR = new SingleLineSqlCommandExtractor();

可以很清楚的看到,DEFAULT_EXTRACTOR是SingleLineSqlCommandExtractor。

所以,如果要能够导入多行的SQL,只需要配置:

  hibernate.hbm2ddl.import_files_sql_extractor=org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor

就可以了。

Hibernate 配置详解(12) 补充的更多相关文章

  1. Hibernate 配置详解(12) 其实我也不想用这么土的名字

    hibernate.hbm2ddl.import_files 这个配置用于在hibernate根据映射文件执行DDL之前,如果我们自己设置了要事先运行的SQL文件,hibernate就会先执行这些SQ ...

  2. Hibernate 配置详解(9)

    hibernate.cache.use_structured_entries Hibernate文档上介绍,该属性是用于把对象以一种更易读的方式放到二级缓存中,这样,在对二级缓存进行监控的时候就更容易 ...

  3. Hibernate 配置详解(2)

    6) hibernate.session_factory_name: 配置一个JNDI名称,通过Configuration对象创建的SessionFactory会绑定到JNDI下该名称中.一般名字格式 ...

  4. Hibernate 配置详解(5)

    9) hibernate.batch_fetch_style: 该配置是hibernate4.2.0新添加的,使用这个设置可以配置hibernate在做batch-fetch的时候,生成SQL的策略. ...

  5. Hibernate 配置详解(8)

    hibernate.generate_statistics 这个配置大家应该都很熟悉,用于开启Hibernate统计信息,便于对Hibernate相关性能调试提供数据依据.在开发过程当中,可以把这个选 ...

  6. Hibernate 配置详解(7)

    hibernate.order_updates: Hibernate文档中提到,该配置用于在刷新一级缓存,提交UPDATE的时候,按照每类对象的主键顺序排序后再提交,可以在高并发情况下减少事务死锁的可 ...

  7. Hibernate 配置详解(11)

    hibernate.session_factory_name_is_jndi 配置hibernate.cfg.xml中SessionFactory的name属性是否作为JNDI名称绑定.默认是true ...

  8. hibernate二级缓存ehcache hibernate配置详解

    <!-----------------hibernate二级缓存ehcache------------------------->hibernate配置 <prop key=&quo ...

  9. Hibernate配置详解

    <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' ...

随机推荐

  1. Python框架

     Django.Pylons & TurboGears & repoze.bfg.Tornado & web.py.Bottle & Flask.Quixote(豆瓣用 ...

  2. jQuery相关知识

    1.jQuery中$符号有何作用? $作为jQuery的别名,如$(document).ready() 即是 jQuery(document).ready() 2.jQuery选择器有哪几种? 基本选 ...

  3. ajax完成list无刷新返回

    ajax完成list无刷新返回 ajax无刷新技术总结,以下是一段我写的ajax应用的js脚本.其中提交的data刚开始我采用的是$('#formId').serialize();但是出现乱码问题,为 ...

  4. 001.web前端-学习了解

    学习web前端开发基础技术需要掌握:HTML.CSS.JavaScript语言.下面我们就来了解下这三门技术都是用来实现什么的: 1.html(Hypertext Markup Language)—— ...

  5. mysql 与 mysqli的区别

    mysqli.dll是PHP对mysql新特性的一个扩展支持.在PHP5中可以在php.ini中加载mysql后面的i,指improved, interface, ingenious, incompa ...

  6. 走进C标准库(8)——"string.h"中函数的实现相关字符串操作函数

    我的strcat: char *strcat(char *dest,char *src) { char * reval = dest; while(*dest) dest++; while(*src) ...

  7. 微软 Office 2010 SP2 正式版下载大全(含简中)

    7月24日消息,微软正式为 Office 2010 和 SharePoint 2010 系列产品发布 SP 2服务包,带来重要更新和修复.除了提供产品补丁,SP2服务包还将提升产品的稳定性.性能以及安 ...

  8. TLSAlloc()

    为什么要有TLS?原因在于,进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量.在一个线程修改的内存内容,对所有线程都生效.这是一个优点也是一个缺点.说它是优点,线 ...

  9. 面向对象程序设计-C++_课时16子类父类关系

    初始化列表 类名::类名(形参1,形参2,...形参n):数据成员1(形参1),数据成员2(形参2),...,数据成员n(形参n) { ... } 规则1,初始化列表进行数据成员的初始化 规则2,初始 ...

  10. 在线词典php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...