Ebean 不与 Play-2.5(OneToMany) 级联持久化

Ebean is not cascading persistence with Play-2.5(OneToMany)

这是我的模型。

用户:

@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(user)。 添加到用户的标签不会持久保存到数据库中。我也没有看到任何异常,用户的其他字段被保留但没有标签。 我错过了什么吗?

注意:我使用的是 postgres。

感谢@marcospereira 的建议。 我在 Tag 模型中缺少 id 字段。启用调试和 sql 日志记录后,我注意到日志中有警告。 正确创建Tag的方法class:

@Entity
@Table(name="tags")
public class Tag {
  @Id
  @GeneratedValue
  public String id;
  public String tag;
}

但 Ebean 这样做的原因很奇怪。

希望这对以后的人有所帮助。