Play framework + ebean: вложенные модели сохраняются как нулевые
Я думаю, что это простая проблема: у меня есть две модели, например;
@Entity
case class User(name: String, email: String) extends Model {
@Id
var id: Int = 0
}
А потом;
@Entity
case class Task(
subject: String,
body: String,
@ManyToOne
user: User) extends Model {
@Id
var id: Int = 0
}
То, что я вижу, это то, что, когда я выбираю все задачи из базы данных (find().all()
), Я вижу это user = null
для всех задач, при отладке, если я установил точку останова на newTask.save()
Я вижу, что поле пользователя этого экземпляра установлено правильно.
Что с этим не так?
1 ответ
Благодаря @Salem, в основном, указанная им ссылка достаточна для того, чтобы понять, что происходит, и часто это может немного сбивать с толку.
Что я сделал, так это определил геттер / сеттер для ссылок; Так что-то вроде этого в Task
Сделаю;
@Entity
case class Task (subject: String, body: String) {
val userId: Int = 0
// setter
def user_= (user: User) = userId = user.id
// getter
def user:User = {
User.find().byId(userId) // ensure find() is defined in the companion object
}
}