Ebean记录未能恢复关系

时间:2015-04-23 01:55:19

标签: java sql orm playframework ebean

我在使用Ebean / Play时没有正确地在桌子之间舔舔。

我有3个表,用户群组 UsersGroups (桥接)。

我在每个表中都有一条记录,当我拿起用户记录时,该对象可以访问所有关联的 UsersGroups 记录。但是,当我尝试对执行相同操作时,链接的 UsersGroups 对象为空。我对ORM没什么经验,也不知道如何调试这个问题。

用户类:

@Entity
public class Users extends Model {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Long intUserId;

    @javax.persistence.Column(length = 50, unique = true)
    @Constraints.Required
    public String strUsername;

    @OneToMany(mappedBy = "user", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    public List<Sessions> session;

    @OneToMany(mappedBy = "member", cascade = CascadeType.ALL)
    public List<UsersGroups> memberOfGroups;


    @javax.persistence.Column(length = 50)
    public String strFirstName;

    @javax.persistence.Column(length = 50)
    public String strLastName;

    @javax.persistence.Column(length = 50, unique = true)
    @Constraints.Required
    public String strEmail;

    @Formats.DateTime(pattern = "dd/MM/yyyy")
    public Date tsRegistrationDate = new Date();

    public String strPasswordHash;

    public static Finder<Long, Users> find = new Finder(Long.class, Users.class);
}

小组课程:

@Entity
public class Groups extends Model {

    @Id
    @Constraints.Required
    @Column(unique = true)
    @GeneratedValue(strategy = GenerationType.AUTO)
    public Long intGroupId;

    @Transient
    public Long intToken() {
        return this.intGroupId + 100000;
    }

    @OneToMany(mappedBy = "group", cascade = CascadeType.ALL)
    public List<UsersGroups> usersGroups;

    @Constraints.Required
    @Formats.DateTime(pattern = "dd/MM/yyyy")
    public Date tsCreated = new Date();

    @Constraints.Required
    @javax.persistence.Column(length = 2)
    public Long intType;

    @Constraints.Required
    @javax.persistence.Column(length = 2)
    public Long intStatus = (long) 1;

    @Constraints.Required
    @javax.persistence.Column(length = 50)
    public String strName;

    @Constraints.Required
    public boolean blPublic;

    public static Finder<Long, Groups> find = new Finder(Long.class, Groups.class);
}

桥类:

@Entity
public class UsersGroups extends Model {

    @ManyToOne(cascade=CascadeType.ALL)
    @JoinColumn(name = "int_user_id")
    public Users member;

    @ManyToOne(cascade=CascadeType.ALL)
    @JoinColumn(name = "int_group_id")
    public Groups group;

    public int type;


    public static Finder<Long, UsersGroups> find = new Finder(Long.class, UsersGroups.class);



}

现在我的问题:

System.out.println("GROUP: "+ group.intGroupId);
System.out.println("UGROUP: "+ Ebean.group(UsersGroups.class ).where().eq("int_group_id", group.intGroupId).findRowCount());
System.out.println(group.usersGroups.size());

打印:

GROUP: 12
UGROUP: 1
0

从此我收集到1.我的组对象被找到,2。找到桥表中的相关记录,3。Ebean无法获取链接。

非常感谢帮助。

0 个答案:

没有答案