2016-04-16 17 views
0

を使用して新しいエンティティを作成することはできません可能な方法(シートあり/なし)で動作しません。 私が試した私のオプションのひとつ:GORMは、私は次のようにクラスSheetLayoutを持ってADDTO

def testsl(){ 
     Sheet s = Sheet.findById("AAAAAaaaaaAAAaaaAA") 
     SheetLayout sl = new SheetLayout() 
     sl.setxPosition(0) 
     sl.setyPosition(1) 
     sl.setSize("satas") 
     s.addToSheetLayouts(sl) 
     s.save(flush:true) 

    } 

、それだけで任意のアイデア:(

を働いていない

+0

'static belongsTo = [sheet:sheet]'がある場合は 'private sheet sheet'は必要ありません。しかし、私はそれが問題を解決するかどうかわからない –

+0

私は試していたが、それはまだ助けていないありがとう。 これは、SheetLayoutを保存しようとしているときに、静的なhasMany = [sheetLayouts:SheetLayout]のエンティティレポートがあるためです。これは、SheetLayoutオブジェクトのreport_idに値を設定する必要があるためです。 –

+0

エラースタックトレースがあれば投稿できますか? –

答えて

0

GORM cannot create new entity using addTo

私はそれが本当だとは思わない、次の作品に?。:

Sheet.groovy

class Sheet { 
    // consider using GORM auto timestamp properties for these Dates... 
    Date created 
    Date modified 

    String title 
    int sheetIndex 
    String type 

    static hasMany = [sheetLayouts : SheetLayout] 
} 
私はあなたが保存しようとした後 errorsプロパティを検査示唆

def now = new Date() 
    Sheet s = new Sheet(created: now, modified: now, title: 'Some Title', sheetIndex: 42, type: 'wilbur') 
    s.addToSheetLayouts(xPosition: 0, yPosition: 1, size: 'satas') 
    s.save(flush:true, failOnError: true) 

:あなたはまた、このような何かを行うことができ

def now = new Date() 
    Sheet s = new Sheet(created: now, modified: now, title: 'Some Title', sheetIndex: 42, type: 'wilbur') 
    SheetLayout sl = new SheetLayout() 
    sl.setxPosition(0) 
    sl.setyPosition(1) 
    sl.setSize("satas") 
    s.addToSheetLayouts(sl) 
    s.save(flush:true, failOnError: true) 

:インスタンスを永続化する

SheetLayout.groovy

class SheetLayout { 
    String size 
    int xPosition 
    int yPosition 

    Sheet sheet 

    static belongsTo = [sheet : Sheet] 
} 

コードそして/またはfailOnError:trueを使用してください。

EDIT:

私はちょうどあなたの例を再読み込みし、あなたのSheetLayoutクラスを使用すると、初期化されていないreport性質を持っているように見えます。 nullable: trueでそれを設定していない限り、それはあなたの問題の一部です。

関連する問題