Avaje Ebean.ManyToMany延迟BeanSet

Ale*_*var 4 many-to-many jpa playframework ebean playframework-2.0

我正在编写小应用程序,使用Play Framework 2.0,它使用Ebean作为ORM.所以我需要User类和UserGroup类之间的多对多关系.这是一些代码:

@Entity
public class User extends Domain {

    @Id
    public Long id;
    public String name;

    @ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    public Set<UserGroup> groups = new HashSet();
}



@Entity
public class UserGroup extends Domain {

    @Id
    public Long id;     
    public String name;

    @ManyToMany(mappedBy="groups")
    public Set<User> users = new HashSet();
}
Run Code Online (Sandbox Code Playgroud)

数据库方案生成器为具有中间表的代码生成良好的方案,并且所有工作都很好,直到我使用多对多.

所以我在一个请求中添加组:

user.groups.add(UserGroup.find.byId(groupId));
user.update();
Run Code Online (Sandbox Code Playgroud)

并尝试将它们输出到另一个System.out:

System.out.println(user.groups);
Run Code Online (Sandbox Code Playgroud)

这会返回:

BeanSet推迟

快速搜索显示BeanSet是来自Ebean的延迟加载容器.但似乎它没有以适当的方式工作或我错过了重要的事情.

关于我做错了什么,有什么想法吗?

bie*_*ior 9

您需要手动保存关联

user.groups.add(UserGroup.find.byId(groupId));
user.saveManyToManyAssociations("groups");
user.update();
Run Code Online (Sandbox Code Playgroud)