我想知道是否有任何方法来检索记录和其收集成员的具体数量。如何使用Hibernate检索集合的特定成员?
我有一个名为MyGroup的类,它保存了学生列表,每个学生可以一次在一个组中。我需要检索每个组的可用学生列表。如果我检索每个小组的所有学生并找到可用的小组,则需要大量的记忆来在集合中运行循环,并检查每个学生的可用字段。
另一方面(双向),如果我对学生执行select子句以检索可用的学生,这样我也检索组类记录(因为它是学生的成员)。因此,对于每个学生,我正在检索它的字段+组的字段。
样本数据
Group 1
Name available
Jack true
Luke false
Nou true
...
Group 2
Name available
Mike false
George false
Alex true
...
预期结果
Name Available Group GroupName
Jack true 1 Wolfs
Nou true 1 Wolfs
Alex true 2 Tigers
类
@Entity
public class Student {
@Id
@GeneratedValue
private long id;
private String name;
private boolean available;
@OneToOne
private MyGroup group;
getters and setters
}
@Entity
public class MyGroup {
@Id
@GeneratedValue
private long id;
private String name;
@OneToMany
private List<Student> student = new ArrayList();
getters and setters
}
“如果我执行这些学生的选择子句检索那些可我最终为组记录执行内选择学生因为每个学生记录都有一个组字段。“什么? – Taylor
@泰勒我已经改写了它,请让我知道它现在是否可读 – J888
是的,它可能基于学生和组ID的搜索ID。如果你使用上面的学生实体和Mygroup你可能会遇到正常形式.U会得到多余的stundent数据。你应该检查最小化冗余数据在实体,这将完美的设计。 – gks