Grails Как сохранить данные в таблице с принадлежностью к ассоциации? - PullRequest
0 голосов
/ 04 июля 2018

У меня есть два класса моделей: Пользователь и Баланс.

class User {

Balance balance
String name
String role
String password
static constraints = { }
}


class Balance {

double balance
static belongsTo = [user:User]
static constraints = {}
}

Каждый баланс принадлежит пользователю. Теперь мне нужно сохранить информацию о пользователе и балансе в соответствующих таблицах с помощью функции saveAdd ().

 def saveAdd(){
    def name = params.name
    def password= params.password
    def balance = Double.parseDouble(params.balance)
    def u = new User(name:name,password:password,role:"user", balance: new Balance(balance:balance))
    u.save(flush:true)
}

Но я получаю сообщение об ошибке "java.lang.reflect.InvocationTargetException: null". Есть ли ошибка в процессе картирования? Чего мне не хватает?

1 Ответ

0 голосов
/ 09 июля 2018

Я бы реорганизовал код так:

class User {   
  static hasOne = [ balance:Balance ]
}

class Balance {
  static belongsTo = [user:User]
}

тогда у вас не должно возникнуть проблем с сохранением объектов в контроллере:

 def saveAdd(){
    def u = new User(...)
    def b = new Balance(user:u, ...)
    b.save()
    u.save(flush:true)
}
...