【发布时间】:2015-11-18 08:58:09
【问题描述】:
我有休眠实体GeUser 这个实体与Pick 实体有ManyToMany 关系,这个实体与ALgo 实体有OneToOne 关系,并且这个实体与DbMatch 实体有ManyToMany 关系。我的目标是获得 GeUser 实体但没有 picks.algo.matches 。我想在我的网络应用程序上使用 GeUser 对象,但对我来说不需要关于算法匹配的数据,所以我想在从数据库加载之前跳过它。
GeUser 实体:
...
@Entity
public class GeUser {
....
@ManyToMany
private List<Pick> picks = new ArrayList<Pick>(0);
...
选择实体:
@Entity
public class Pick {
...
@OneToOne
private Algo algo;
...
算法实体:
...
@Entity
public class Algo{
...
// I want to skip this when GeUser entity is loading from db. Should be e.g. matches == null
@ManyToMany
protected List<DbMatch> matches = new ArrayList<DbMatch>();
...
GeUser dao 方法:
public GeUser getUser(int user_id) {
Criteria criteria = session.createCriteria(GeUser.class);
criteria.add(Restrictions.eq("user_id",user_id));
List<GeUser> users = criteria.list();
if (users.size() > 0) {
return users.get(0);
} else {
return null;
}
}
【问题讨论】:
-
跳过关系是什么意思?
-
对不起,匹配项应该为空,GeUser.picks.get(0).algo.matches = null。
-
请把问题说清楚。
My goal is get GeUser entity but without last relation data是什么意思? -
编辑了我的帖子,现在更好了吗?
-
好多了!请查看我的答案,如果它符合目的,请接受。 :)
标签: java hibernate hibernate-criteria