1、Users实体
- public class Users implements java.io.Serializable {
-
-
-
-
private Long id;
-
private String userName;
-
private Set challenges = new HashSet(0);
-
- ......
-
- }
public class Users implements java.io.Serializable {
// Fields
private Long id;
private String userName;
private Set challenges = new HashSet(0);
......
}
表记录:
id user_name
1 小明
2 小强
2、Challenge实体
- public class Challenge implements java.io.Serializable {
-
-
-
-
private Long challengeid;
-
private Users users;
-
private String challengeName;
-
- ......
-
- }
public class Challenge implements java.io.Serializable {
// Fields
private Long challengeid;
private Users users;
private String challengeName;
......
}
表记录:
id challenge_name user_id
1 挑战1 1
2 挑战2 1
3 挑战3 2
3、根据challengeid查询Challenge对象,再关联出相应的users信息
-
-
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Challenge.class);
-
detachedCriteria.add(Restrictions.eq("challengeid", new Long(1)));
- Criteria criteria = detachedCriteria.getExecutableCriteria(session);
-
-
- List resultList = criteria.list();
-
if (resultList != null && resultList.size() > 0) {
-
for (int i = 0; i < resultList.size(); i++) {
- Challenge challenge = (Challenge) resultList.get(i);
-
- System.out.println(challenge.getUsers().getUserName());
- }
- }
// 查询条件
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Challenge.class);
detachedCriteria.add(Restrictions.eq("challengeid", new Long(1)));
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
// 查询
List resultList = criteria.list();
if (resultList != null && resultList.size() > 0) {
for (int i = 0; i < resultList.size(); i++) {
Challenge challenge = (Challenge) resultList.get(i);
// 打印出challenge所关联的users信息
System.out.println(challenge.getUsers().getUserName());
}
}
结果输出:
小明
4、根据challengeName模糊查询查询Challenge对象,再关联出相应的users信息
-
-
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Challenge.class);
-
detachedCriteria.add(Restrictions.like("challengeName", "%" + "挑战" + "%"));
- Criteria criteria = detachedCriteria.getExecutableCriteria(session);
-
-
- List resultList = criteria.list();
-
if (resultList != null && resultList.size() > 0) {
-
for (int i = 0; i < resultList.size(); i++) {
- Challenge challenge = (Challenge) resultList.get(i);
-
- System.out.println(challenge.getUsers().getUserName());
- }
- }
// 查询条件
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Challenge.class);
detachedCriteria.add(Restrictions.like("challengeName", "%" + "挑战" + "%"));
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
// 查询
List resultList = criteria.list();
if (resultList != null && resultList.size() > 0) {
for (int i = 0; i < resultList.size(); i++) {
Challenge challenge = (Challenge) resultList.get(i);
// 打印出challenge所关联的users信息
System.out.println(challenge.getUsers().getUserName());
}
}
结果输出:
小明
小明
小强
5、根据users查询,查询小明对应的所有Challenge信息
-
-
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Users.class);
-
detachedCriteria.add(Restrictions.eq("userName", "小明"));
- Criteria criteria = detachedCriteria.getExecutableCriteria(session);
-
-
- List resultList = criteria.list();
-
if (resultList != null && resultList.size() > 0) {
-
Set set = ((Users) resultList.get(0)).getChallenges();
-
-
for (Iterator it = set.iterator(); it.hasNext();) {
- Challenge challenge = (Challenge) it.next();
- System.out.println(challenge.getChallengeName());
- }
- }
// 查询条件
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Users.class);
detachedCriteria.add(Restrictions.eq("userName", "小明"));
Criteria criteria = detachedCriteria.getExecutableCriteria(session);
// 查询
List resultList = criteria.list();
if (resultList != null && resultList.size() > 0) {
Set set = ((Users) resultList.get(0)).getChallenges();
// 循环打印出小明对应的所有Challenge信息
for (Iterator it = set.iterator(); it.hasNext();) {
Challenge challenge = (Challenge) it.next();
System.out.println(challenge.getChallengeName());
}
}
结果输出:
挑战2
挑战1
相关推荐
Hibernate - DetachedCriteria 的完整用法文档描述
DetachedCriteria的查询方式汇总
NULL 博文链接:https://chaoyi.iteye.com/blog/2152094
NULL 博文链接:https://rmn190.iteye.com/blog/379302
DetachedCriteria
DetachedCriteria使用介绍
使用 Hibernate Criteria && DetachedCriteria Queries演示Exists Clause非常简单的项目 安装 git clone https://github.com/RameshRM/hibernate-sample.git 跑步 mvn install 这是一个maven项目,依赖项是 ...
DetachedCriteria Criteria 使用方法 非常详细外加练习
下面小编就为大家带来一篇浅谈DetachedCriteria和Criteria的使用方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
().findByCriteria(detachedCriteria) 方法可以很方便地根据DetachedCriteria 来返回查询结 果。 DetachedCriteria 提供了 2 个静态方法 forClass(Class) 或 forEntityName(Name) 进行DetachedCriteria 实例的创建。
源文件 博文链接:https://kings008.iteye.com/blog/246773