Play framework + ebean:嵌套模型被保存为null

时间:2014-09-10 18:19:14

标签: java playframework persistence 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())时,如果我在{{1}处设置断点,我会在调试时看到所有任务的user = null我看到该实例的用户字段已正确设置。

这有什么问题?

1 个答案:

答案 0 :(得分:0)

感谢@Salem,基本上,他指出的link足以知道发生了什么 - 通常这可能有点令人困惑。

我所做的是为引用定义一个getter / setter; 所以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
  }
}