Java 播放框架+;ebean:嵌套模型将另存为null
我认为这是一个简单的问题: 例如,我有两个模型Java 播放框架+;ebean:嵌套模型将另存为null,java,playframework,persistence,ebean,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 =
@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()
设置断点,我看到该实例的用户字段设置正确
这有什么问题吗?谢谢@Salem,基本上,他指出的问题足以知道发生了什么——这通常会让人有点困惑 我所做的是为引用定义一个getter/setter; 所以在
任务
中这样做就可以了
@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
}
}
From:“直接Ebean字段访问的增强(支持延迟加载)仅适用于Java类,而不适用于Scala”。使用getter/setter。