码迷,mamicode.com
首页 > Web开发 > 详细

hibernate 多对多注解配置及实体属性条件查询

时间:2015-01-07 19:13:09      阅读:360      评论:0      收藏:0      [点我收藏+]

标签:多对多查询   多对多注解   criteria   实体查询条件   

以下是通过hibernate注解的方式写的多对多关系用户和角色实体,即一个用户有多个角色,一个角色下也有多个用户。

普通属性作为条件查询相信那么简单大家都会了,如下是一个关系实体作为查询条件的小例子。


用户和角色的多对多配置如下:

@Entity
public class UserInfo {
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Integer id;
	private String no;
	private String name;
	private int age;
	private Date createDate;
	
	@ManyToMany(fetch=FetchType.EAGER)
	private Set<RoleInfo> roles;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	
	public Set<RoleInfo> getRoles() {
		return roles;
	}

	public void setRoles(Set<RoleInfo> roles) {
		this.roles = roles;
	}

	public String getNo() {
		return no;
	}

	public void setNo(String no) {
		this.no = no;
	}

	public Date getCreateDate() {
		return createDate;
	}

	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

}


角色实体如下:

@Entity
public class RoleInfo {
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Integer id;
	private String name;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "RoleInfo [id=" + id + ", name=" + name + "]";
	}
	
}

现在要查询角色名叫“管理员的”用户

查询代码如下:

	@Test	
	public void testQueryRelation(){
		Session session=sessionFactory.getCurrentSession();
		Criteria criteria =session.createCriteria(UserInfo.class);
		 //关联关系查询
		 criteria.createCriteria("roles").add(Restrictions.like("name", "管理员"));
		System.out.println(criteria.list());
		System.out.println(criteria.list().size());
	}


本文出自 “Coder随手记-技术分享” 博客,请务必保留此出处http://viphyy.blog.51cto.com/6403455/1600199

hibernate 多对多注解配置及实体属性条件查询

标签:多对多查询   多对多注解   criteria   实体查询条件   

原文地址:http://viphyy.blog.51cto.com/6403455/1600199

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!