我从 mybatis 插件文档中引用:
“使用 MyBatis 插件时,您的“域”类应该位于 src/groovy 而不是 grails-app/domain。这是避免与 GROM 冲突的必要条件,因为 MyBatis 插件可以与现有的 GORM 域类共存。
那么当我想将 grails 与 MyBatis 插件一起使用时,验证和约束应该放在哪里?
我从 mybatis 插件文档中引用:
“使用 MyBatis 插件时,您的“域”类应该位于 src/groovy 而不是 grails-app/domain。这是避免与 GROM 冲突的必要条件,因为 MyBatis 插件可以与现有的 GORM 域类共存。
那么当我想将 grails 与 MyBatis 插件一起使用时,验证和约束应该放在哪里?
您可以向 Grails 中的任何 Groovy 类添加 @Validateable 注释,并且您将能够对其进行验证...插件目前不检查任何验证错误,因此您必须自己实现该代码。
来自官方 Grails 文档:
定义静态约束属性并使用 @Validateable 注释的类可以由框架验证
http://grails.org/doc/2.1.0/guide/validation.html#validationNonDomainAndCommandObjectClasses
你甚至可以编写一个自定义的 MyBatis 拦截器(参见https://github.com/fzilic/Grails-MyBatis/blob/master/src/groovy/org/grails/plugins/mybatis/locking/OptimisticLockingInterceptor.groovy)并在之后注册它SqlSession 已创建...
目前 MyBatis 插件不支持在其配置中注册自定义拦截器,但可以将它们添加到拦截器链中
def factory = GrailsApplication.mainContext.getBean("sqlSessionFactoryBean_dataSource")
factory.configuration.interceptorChain.addInterceptor(Interceptor)
将来的版本中可能会添加对此的支持。