1

サーバーの実行中にユーザー管理データをテストに挿入しようとしています。ブートストラップ クラスは正常に実行されていますが、レコードがテーブルに挿入されていません。ここでは、ロール、ユーザー、およびブートストラップ ファイルを貼り付けています。

私の役割ドメイン

package com.mediacast
class Role {    
    static mapWith="mongo"
    String roleType     


    static constraints = {
        roleType(nullable:false,blank:false)
    }
    static mapping = {          
    }
}

私のテストドメイン

package com.mediacast

class Tests {
    static mapWith="mongo"
    //static hasMany = [roles: Role]    
    String userName 
    String password 
    String mailId            
    String pwdSet
    String role
    Role roles
    static constraints = {
        userName nullable:false,blank:false, unique:true        
        mailId blank:false              
    }
    static mapping={
        version false
    }
}

私のブートストラップクラスは

import com.mediacast.User
import com.mediacast.Role
import com.mediacast.Tests
class BootStrap {
    def springSecurityService
    def init = { servletContext ->

        if (!Tests.count()) {       
            createData()                    
        }       
    }
    private void createData(){  
        def roleInstance = Role.findByRoleType("Admin") 
        System.out.println("--------Instance-----------"+roleInstance.roleType);
        //def password = springSecurityService.encodePassword("admin")
        def userSec =new Tests(userName:"admin",password:"admin",mailId:"raghurame@techaffinity.com",roles:roleInstance,pwdSet:"Y").save(flush:true)
        System.out.println("--------Instance-----------"+userSec);
    }
    def destroy = {
    }
}

実行中ですが、ブートストラップにレコードが挿入されていません。これを手伝ってください。

4

1 に答える 1

0

まず、物事をデバッグするために、

.save(flush:true, failOnError:true)

標準よりも優れている

.save(flush:true)

検証が失敗した場合、2 つ目はオブジェクトを保存せずに続行します。

最初のものは例外をスローし、検証が失敗した場合にプロジェクトの起動を終了します。

createDate() が実際に実行されるかどうかを確認するために、いくつかの println またはより適切な log.debug ステートメントを投入することも良いトリックです。(if (!Domain.count())私の好みのスタイルではありません - 正しく動作しますか? 私は好きif (Domain.count()==0)です ...)

私は常に nullable:true|false 制約を手動で設定しているので、デフォルトが何であるかはわかりませんが、これが問題になると思います.failOnError:trueは、設定する必要があることを示す目に見える検証例外になります.他のフィールドも…

試してみて、うまくいかない場合はコメントを書いてください...

于 2012-09-21T15:15:47.037 に答える