背景
我正在使用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
,然后保存User
(Code)
结果:新的User
存储在具有正确信息的数据库中,但是数据库中没有存储新的UserEmail
通过在static create
(Code)中创建UserEmail
方法
结果:数据库中没有存储任何UserEmail
通过添加到List<UserEmail> emails
,然后保存UserEmail
和User
(Code)
结果:新的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