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

Grails ibatis plugin1.3.1的三个Bug修正

阅读更多
第一个bug,gateway不能自动注入进Controller!
原因是ibatis插件没有把欲注入的gateway首字母改成小写

可修改C:\Documents and Settings\XX\.grails\2.0.0\projects\XX\plugins\ibatis-1.3.1\ IbatisGrailsPlugin.groovy


    "${a.shortName}"(a.clazz) { bean ->

改为
	def shortName = a.shortName[0].toLowerCase() + a.shortName[1..-1];
	"${shortName}"(a.clazz) { bean ->


第二个bug,SQL定义里引用包含其他SQL时会出错,如我们定义了一个userGateway,SQL写在这个文件里user.xml
<select id="getUsers" parameterType="xx" resultType="xx">
    <include refid="getUsersMain" />
</select>
<sql id="getUsersMain">
    SELECT * FROM USER
</sql>


getUsers SQL引用包含了getUsersMain片段,但mybatis就是不认,报错XML fragments parsed from previous mappers does not contain value for ......

原因是grails 的ibatis1.3.1插件用的是mybatis3.04, 而3.04版有这个bug,所以把mybatis升级到最新的3.06吧。
可以把grails-ibatis-1.3.1.zip从官网下载下来,然后解压修改以下文件。
dependencies.groovy改2行
    compile 'org.mybatis:mybatis:3.0.6'
    compile('org.mybatis:mybatis-spring:1.0.2') {

当然第一个bug你也可以改解压出来的IbatisGrailsPlugin.groovy

改完以后要重装ibatis plugin了
1.首先到你的工程目录下执行grails uninstall-plugin ibatis
2.然后把grails插件的缓存清掉
删除.grails\ivy-cache\org.mybatis
删除.grails\ivy-cache\org.grails.plugins\ibatis
删除.grails\2.0.0\cached-installed-plugins
3.安装新的插件
把你刚才改好的ibatis重新打包为grails-ibatis-1.3.1.zip,比如放在D盘根目录,
到你的工程目录下执行grails install-plugin d:/grails-ibatis-1.3.1.zip

OK了,SQL套SQL终于可以正常执行了。

第三个bug,解析XML时候会尝试连接http://mybatis.org/dtd/mybatis-3-mapper.dtd ,如果机器连不到internet,就会报错。

这个其实原版的mybatis是没有这个问题的,它用了一个EntityResolver来解决这个问题的。到了ibatis plugin就有这个问题了。
解决方法就是修改插件下面的src\groovy\org\codehaus\groovy\grails\plugins\ibatis\ MappingSupport.groovy改123行
new XmlSlurper(validating, true).parseText(text)

改为
def xmlSlurper = new XmlSlurper(validating, true)
xmlSlurper.setEntityResolver(new org.apache.ibatis.builder.xml.XMLMapperEntityResolver()) 
xmlSlurper.parseText(text)



分享到:
评论

相关推荐

    Grails plugin: Calendar

    总的来说,"Grails plugin: Calendar"是Grails框架的一个实用扩展,它为构建时间管理功能提供了便利。通过了解和使用这个插件,开发者可以快速创建具有强大日历功能的Web应用,同时得益于Grails的灵活性和Groovy语言...

    grails-plugin-converters-2.3.1.zip

    Grails Plugin Converters 2.3.1 和 Box Java SDK v2 是两个在开源世界中备受关注的工具,它们各自在不同的领域提供强大的功能,而将两者结合使用,可以为开发者带来更丰富的功能和更高效的工作流程。 Grails ...

    elasticsearch-grails-plugin, 恢复的ElasticSearch grails插件.zip

    elasticsearch-grails-plugin, 恢复的ElasticSearch grails插件 Elasticsearch插件插件这个项目是一个基于Elasticsearch的插件,这个项目是基于的人完成的伟大工作的。你为什么想要为原来的Elasticsearch插件提供...

    grails-plugin-controllers-2.3.3.zip

    标题中的"grails-plugin-controllers-2.3.3.zip"是一个Grails插件的版本包,主要关注的是Grails框架中的控制器部分。Grails是一个基于Groovy语言的开源Web应用框架,它构建在Java平台上,旨在提高开发效率。这个插件...

    grails-datastore-gorm-plugin-support-2.0.4.RELEASE.zip

    Grails Datastore GORM Plugin Support 2.0.4.RELEASE是一个针对这种需求的开源项目,它提供了一种强大的工具,帮助开发者简化数据存储和对象关系映射(ORM)的过程。该版本的插件是针对Grails框架的,Grails是一个...

    grails-plugin-experiment:测试Grails插件开发的地方

    该项目包含一个名为security的插件和一个名为bookstore的应用程序以测试该插件。 插件用户: org.centerkey.grails.User 应用程序用户(扩展插件用户): com.example.BookstoreUser 试试看 生成插件并运行测试...

    grails-gradle-plugin

    classpath " org.grails:grails-gradle-plugin:2.1.2 " } } version " 0.1 " group " example " apply plugin : " grails " repositories { grails . central() // creates a maven repo for the Grails Central ...

    elasticsearch-grails-plugin-sample:grails 弹性搜索插件的示例应用程序

    Elasticsearch Grails 插件 - 示例应用Elasticsearch Grails 插件的示例应用程序。 插件主页由 Noam Y. Tenne 维护并托管在 。为什么? 如果您习惯了 grails 但从未使用过 ,那么安装插件后您可能会有点迷茫。 ...

    Eclipse下搭建Grails项目

    Grails是一个基于Groovy语言的开源Web应用框架,它简化了开发过程,尤其适合快速构建动态网站。在Eclipse中搭建Grails项目可能相对复杂,但通过以下步骤,即使是初学者也能顺利进行。 1. **Grails环境安装** - ...

    Grails Grails Grails

    Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之上,旨在简化开发过程并提高生产力。Grails 的设计深受Ruby on Rails的影响,提供了MVC(模型-视图-控制器)架构模式,允许开发者快速构建...

    Grails开发之(Rest教程).pdf

    在依赖管理方面,可以看到引入了多个Grails插件,例如org.grails:grails-gradle-plugin、com.bertramlabs.plugins:asset-pipeline-gradle、org.grails.plugins:hibernate4等,这些插件扩展了Grails的核心功能,提供...

    elasticsearch-grails-plugin:ElasticSearch grails 插件

    ElasticSearch Grails 插件有一个新的维护者! 请浏览 Noam Y. Tenne fork 以获取插件源代码的新更新: 此版本的主要新功能之一是能够通过插件使用任何 gorm-datastore, 所以你不再绑定到Hibernate插件。 虽然 ...

    Grails权威指南 Grails权威指南

    《Grails权威指南》是一本全面深入探讨Grails框架的专著,旨在帮助读者掌握这一强大的Web开发工具。Grails是一种基于Groovy语言的开源框架,它为构建现代、高效的应用程序提供了简洁高效的解决方案。本指南针对不同...

    Groovy轻松入门——Grails实战基础篇

    本篇文章将详细介绍如何搭建Grails开发环境以及如何创建一个简单的Grails应用程序。 ### 一、搭建Grails环境 在开始搭建Grails环境之前,我们首先需要确保已经安装了Java环境。因为Grails是基于Groovy的,而Groovy...

    第一个grails程序

    在"第一个grails程序"中,我们通常会看到一个典型的Grails项目结构,包括以下几个关键部分: 1. **src/main/groovy**:这个目录存放所有Groovy源代码,包括应用程序的主要业务逻辑和控制器。 2. **src/main/...

    grails-用户手册

    三、Grails命令行工具 Grails提供了一套强大的命令行工具,用于快速创建项目、生成控制器、领域类、服务等。例如,`grails create-app` 创建新应用,`generate-controller` 生成控制器,`generate-domain-class` ...

    grails-core源码

    `PluginManager`负责管理插件,通过`PluginMetaClass`动态扩展Grails应用的功能。每个插件都有自己的生命周期方法,可以在特定的生命周期阶段执行自定义操作。 四、依赖注入(Dependency Injection) Grails采用...

    Foursquare-Grails-Plugin:Foursquare Grails集成

    插件文档该插件用作现有Foursquare API的grails包装器。 该插件提供的实用程序在与Foursquare API交互时可提供更丰富和连贯的体验。 与传统的API调用相比,使用此插件访问Foursquare API可以得到“自定义”且高度...

    grails学习

    - `'org.codehaus.groovy.grails.plugin'`:插件 通过以上对 Grails 学习中遇到的问题的分析,你应该对 Grails 开发有了更深入的理解。持续学习和实践,将有助于你熟练掌握 Grails 框架,并能高效地解决实际开发中...

    eclipse开发grails插件

    Grails就是一个基于Groovy语言的开源Web应用框架,它以其简洁的语法和强大的功能受到开发者的欢迎。与此同时,Eclipse作为一款强大的Java集成开发环境(IDE),也提供了丰富的插件支持,帮助开发者更高效地进行...

Global site tag (gtag.js) - Google Analytics