以下是我的模特。
用户:
@Entity
@Table(name="users")
public class User extends Model {
String username;
@Id
String id;
@OneToMany(cascade = CascadeType.ALL)
List<Tag> tags;
}
标签:
@Entity
@Table(name="tags")
public class Tag extends Model {
@Constraints.Required
public String tag;
}
持久性代码(删除不必要的代码):
User user = new User();
user.id = UUID.randomUUID().toString();
user.username = username; // String
user.tags = tags; // list of tags;
Ebean.save(user);
在向用户对象添加标签后,我正在调用 Ebean.save(用户)。 在用户上添加的标签不会持久保存到数据库。我也没有看到任何异常,用户的其他字段得到持久但不是标签。 我错过了什么吗?
注意:我使用的是postgres。
答案 0 :(得分:1)
感谢@marcospereira的建议。 我在Tag模型中缺少id字段。启用调试和SQL日志记录后,我注意到日志中的警告。 创建Tag类的正确方法:
@Entity
@Table(name="tags")
public class Tag {
@Id
@GeneratedValue
public String id;
public String tag;
}
但是为什么Ebean会这样做很奇怪。
希望这有助于将来。