Postgresql Ebean不是Play-2.5(OneToMany)的级联持久性

Postgresql Ebean不是Play-2.5(OneToMany)的级联持久性,postgresql,playframework,ebean,Postgresql,Playframework,Ebean,这是我的模型 用户: @Entity @Table(name="users") public class User extends Model { String username; @Id String id; @OneToMany(cascade = CascadeType.ALL) List<Tag> tags; } 持久性代码(已删除不必要的代码): 在向用户对象添加标记后,我正在调用Ebean.save(user)。 在用户上添加的标记不会持久化到数据库

这是我的模型

用户:

@Entity
@Table(name="users")
public class User extends Model {
  String username;
  @Id
  String id;
  @OneToMany(cascade = CascadeType.ALL)
  List<Tag> tags;
}
持久性代码(已删除不必要的代码):

在向用户对象添加标记后,我正在调用Ebean.save(user)。 在用户上添加的标记不会持久化到数据库。我也没有看到任何异常,用户的其他字段得到持久化,但没有标记。 我错过什么了吗


注意:我正在使用postgres。

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

@Entity
@Table(name="tags")
public class Tag {
  @Id
  @GeneratedValue
  public String id;
  public String tag;
}
但埃宾为什么这么做很奇怪


希望这对将来的人有所帮助。

你能在保存信息的地方发布代码片段吗?你能添加并发布正在执行的内容吗?Ebean允许实体没有@Id属性。。。由于这些实体可用于报告目的。注意:为了获得最佳跨数据库支持,建议不要指定ID生成策略,而是让Ebean根据数据库平台选择适当的策略。
User user = new User();
user.id = UUID.randomUUID().toString();
user.username = username; // String
user.tags = tags; // list of tags;
Ebean.save(user);
@Entity
@Table(name="tags")
public class Tag {
  @Id
  @GeneratedValue
  public String id;
  public String tag;
}