2016-06-23 7 views
1

私は奇妙な問題を抱えています。微細ビューが正しいかどうGrails 2.4.4:createCriteria()のデータベースレコードの更新リスト()

def list = { 
    def myOtherClasses = MyOtherClass.getAll() 

    if (!params.max) params.max = 20 

    if (!params.sort && !params.order) { 
     params.sort = "new" 
     params.order= "desc" 
    } 

    def myClassCount = MyClass.createCriteria().count() { 
     'in'('other', myOtherClasses) 
     order(params.sort, params.order) 
    } 

    def myClassList = MyClass.createCriteria().list() { 
     'in'('other', myOtherClasses) 
     order(params.sort, params.order) 
    } 

    return [ myClassList: myClassList, myClassCount: myClassCount ] 
} 

結果:私は(全体の方法を示すために編集)しているコントローラ内

class MyClass { 
     String name 
     Boolean new = true 
     String number 
     String type 
     Byte[] data  
     Date dateCreated  
     Date lastUpdated 

     static belongsTo = [ 
      other: MyOtherClass 
     ] 

     static mapping = { 
      table 'my_classes' 
      data column: "data", sqlType: "MEDIUMBLOB" 
     } 

     static constraints = { 
      data maxSize: 8000 * 66 
      number nullable: true 
     } 
    } 

:Iドメインオブジェクトを持っています。しかし、このコードが実行されるたびに、データプロパティisDirtyにより、バージョンがインクリメントされ、lastUpdatedが更新されます。

データプロパティはオーディオデータを保持していますが、それは関係ないと思います。

私はここで何が起こっているのか理解できません。だから私の質問は、私はそれを更新を停止させるのですか?

使用: Grailsの2.4.4 休止3.6.10.18 MySQLの事前の5.7.9

感謝:)

+0

残りのコントローラアクションを投稿できますか? – dpcasady

+0

残りのメソッドを要求通りに追加しました。 – havoc74

答えて

1

多くの研究とテストの後、およびいくつかの素晴らしい記事を、私が発見しましたソリューション:

ドメインオブジェクトでByte []型を使用する代わりに、java.sql.Blobを使用してマッピングのsqlTypeを削除しました。

コントローラでは、BlobのByte []データにアクセスするためにいくつかの変更を加えなければなりませんでしたが、それは簡単でした。

私はまだこれがどうして起こったのか分かりません。私はそれについての情報を見つけることができませんでしたが、今は期待どおりに働いています。

関連する問題