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
  }
}
Другие вопросы по тегам