zoukankan      html  css  js  c++  java
  • Hibernate 配置详解(12) 补充

    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,关于Servicehibernate4的一个非常重要的改变,后面再慢慢介绍),这个接口的作用就是用于从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_EXTRACTORSingleLineSqlCommandExtractor

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

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

    就可以了。


  • 相关阅读:
    vue 部署到服务器
    半小时学会 Vuex 数据共享
    Vue 第一次安装 经历 vue cli 3.0
    第一次使用视频截图 ant design
    Luckysheet
    关于导出--分页
    ADO.net很重要
    委托到底是什么? (转载)
    生成流水单号
    Ext.NET 基础学习笔记07 (GridPanel用法)
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3292171.html
Copyright © 2011-2022 走看看