カスタム検索

2009年9月4日金曜日

Grails 1.1.1でDomainのsaveについて

Grails1.1.1でたまに .save() でエラーが出る事があります。
MissingPropertyException for "save" って感じなのですが、saveはメソッドなのにプロパティー扱いされてます・・・

これがまた絶対起きる訳ではなく、同じコードでもcleanしたら発生したりしなかったりとやっかいなものです。
現在は修正済みらしく、1.1.2 or 1.2では直るようです。
JIRAはこちら

JIRAにも書いてありますが、HibernateGrailsPluginの初期化がうまくいってないようです。
回避方法としてはドメインの .count とか .list とかを使うと初期化がされるようで、Bootstrap.groovy に以下を追加すれば、
すべてのドメインを初期化してくれます。

  1. import org.codehaus.groovy.grails.commons.ApplicationHolder  
  2.   
  3. class BootStrap {  
  4.     def init = { servletContext ->  
  5.         // workaround for GRAILS-4580  
  6.         ApplicationHolder.application.domainClasses.each { dc ->  
  7.             dc.clazz.count()  
  8.         }  
  9.     }  
  10. }  

0 件のコメント: