2017-02-20 5 views
1

Grails 2.1.1を使用しています。メソッドのシグネチャがありません:ClassA.save()は引数の型に適用されます:()values:[] "プロダクション環境でオブジェクトを保存しようとしたとき。grails - メソッドの署名がありません:save()

これはコードです:

def method(campId, userId){ 
    ClassA cbl = new ClassA() 
    cbl.userId = userId 
    cbl.campId = campId 
    cbl.save(flush:true) 
} 

このコードは開発中の正常に動作しますが、私は生産のコードを実行したときに、私はこの問題を抱えています。

+0

適用テスト

ClassA cbl = new ClassA(userId:userId,campId:campId)?.save(flush:true) 

同じロジックとしてこれをしようとするだろうが(セーブあなたにClassAに適用)どこかで方法あなたはアプリですか? –

+0

Antonさんに感謝します。私は問題を解決することができました... classAにはメタマジックはありませんでした...私はドメインとテーブルの名前を変更しました。なぜわからないのですか... – Emiliano

+0

すべてがうまくいくのはうれしいですが、「テーブル名」とはどういう意味ですか?手動でテーブルを作成していないことを祈っていますか? grailsがあなたのために自動的に作成するので: –

答えて

0

物事のカップルが

のために外を見るためにあなたは、任意の調査の最初の出発点は、両者の差は何かということですので、それが生産にDEVで動作しますが、ではないと言います。意味は、両方の製品/開発環境でshow create table class_aを実行することです。

それは多分何かが変化していると、それはもはや提供され、いくつかの必要な値を持っている

ステップ2:それは明らかにそれほど保存されていない

あなたが任意のエラーが

def method(campId, userId){ 
    if (campId && userId) { 
    try { 
    ClassA cbl = new ClassA() 
    cbl.userId = userId 
    cbl.campId = campId 
    if (!cbl.save(flush:true)) { 
     //println cbl.errors 
     //log.info "${cbl.errors}" 
    } 
    }catch (Exception e) { 
     //println "E really happended $e" 
    } 
    }else { 
    println "oh my ... a certain value has not been provided" 
    } 
} 

を投げているかどうかを確認する必要があります

上記のコードでは、チェックを行わずに設定しているため、両方の値を確認するためのif文があります。try catchは試行する最後の選択肢でしたが、printlnエラーを保存した場合は試してください。

は最後にアントンはあなたが

ClassA() { 
    super() 
} 

かが欠落しているので、それを保存するために来て、new ClassA()は多分問題を引き起こす可能性がある場合は、あなたがにClassA内の他のinbuildの機能を持ってお勧めとして、念のためにクラスを保存するには多くの方法があります何か、私は最後にあなたは何のメタ魔法が存在しないことを、よろしいです異なり

+0

こんにちはvahid、あなたの答えのおかげで、私は "テーブルを作成する"を使用してみました、と私は両方のテーブルの違いが表示されませんでした。私はあなたが言ったようにロジックを変更しようとしましたが、問題は残っています。 – Emiliano

+0

これはあなたにヒントを与えるかもしれませんhttp://mrhaki.blogspot.co.uk/2010/06/groovy-goodness-get-hints-about-missing.html。私は最初から最後まで書き直すことをお勧めします。また、保存しようとすると問題があった場合は、print catchとprintlnを実行すると、保存関連であればそれ以上の手がかりを与えるためにエラーが表示されるはずでした。保存の一部として何か他のことが起こっていると思われ始めた – Vahid

+0

Thanks vahid、問題はgrailsがドメインを認識していなかったことです(私は他のgrailsドメインメソッドを使ってみましたが、そうではありませんでした)。ドメインとテーブルの名前を変更しました。私は本当に問題があったかどうかはわかりません。 (私の英語には申し訳ありません) – Emiliano

関連する問題