背景

我正在使用Play Framework(Java)存储数据。 Play Framework的用途
Ebean将类转换为可以存储在数据库中的数据。

我在创建One To Many数据库关系时遇到问题。我正在尝试在User模型和UserEmail模型之间创建关系。每个User可能有许多UserEmails

User Model Code
User Email Model Code

问题

创建User然后添加UserEmail时,不会缝将UserEmail保存在数据库中。我尝试了很多方法。


通过添加到List<UserEmail> emails,然后保存UserCode

结果:新的User存储在具有正确信息的数据库中,但是数据库中没有存储新的UserEmail

通过在static createCode)中创建UserEmail方法

结果:数据库中没有存储任何UserEmail

通过添加到List<UserEmail> emails,然后保存UserEmailUserCode

结果:新的User存储在具有正确信息的数据库中,但是数据库中没有存储新的UserEmail





Play Framework(Java)中,如何创建和存储关系数据?我缺少一些步骤吗?我是否必须在Annotation中添加另一个models使其起作用?

更新资料

经过一些进一步的测试后,将User对象保存为新的UserEmail似乎会将其保存到数据库中。但是,当我获取用户时

User retrievedTestUser = User.find.where().eq("userId", testUserId).findUnique();


它不检索UserEmails

最佳答案

添加有关反向字段的信息:

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
public List<UserEmail> emails;


Details in documentation

10-07 19:11