0

ドメインクラスが拡張タイプのhasManyを持つことを防ぐhttp://jira.grails.org/browse/GPJODATIME-28を回避するにはどうすればよいですか?アプリ全体を、BigDecimalから派生したカスタムUserTypeをposixエポック日付で永続化するように切り替えることを考えています。クルミのハンマーのようですが。私が取ることができる別のアプローチはありますか?

import org.joda.time.Instant    
class Foo {    
    Instant birthday 

    Set favoriteDays = []

    static hasMany = [
        favoriteDays : Instant
    ]

    static constraints = {
    }

}

4

1 に答える 1

0

うまくいけば、私はあなたの質問に何かを見逃していませんが、私はこのようなことをしました:

と呼ばれるクラスを作成し、MyInstantで使用しますhasMany

import org.joda.time.Instant   
class MyInstant {
    Instant myInstant
    //anything else you might need
}

class Foo {
    MyInstant birthday

    Set favoriteDays = []
    static hasMany = [favoriteDays: MyInstant]
}

私はこれをでテストしましたFooController

import org.joda.time.Instant
class FooController {
   def save() {
      def fooInstance = new Foo(params)
        .addToFavoriteDays(new MyInstant(myInstant: new Instant()))
        .addToFavoriteDays(new MyInstant(myInstant: new Instant()))
        .addToFavoriteDays(new MyInstant(myInstant: new Instant()))

        if (!fooInstance.save(flush: true)) {
          render(view: "create", model: [fooInstance: fooInstance])
          return
        }

        flash.message = message(code: 'default.created.message', args: [message(code: 'foo.label', default: Foo'), fooInstance.id])
        redirect(action: "show", id: fooInstance.id)
    }
}

すべてが正しく保存され、showアクションはすべての瞬間で新しいFooを表示します。私はこれをH2とMySqlでテストしました。

于 2013-02-08T21:23:31.527 に答える