大峡-华山论剑

一心一意做技术

原创 JPA中的集合查询示例收藏

新一篇: 驾驭ext,你不是一个人战斗,网下ext/ajax技术学习及交流!  | 旧一篇: 足球江湖:这个6月注定非凡

1、VisitInfo模型

@Entity

@Table(name = "System_VisitInfo")

@Cache(usage=CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)

public class VisitInfo implements Serializable {

	private static final long serialVersionUID = 2877662856939429897L;



	@Id

	@GeneratedValue(strategy = GenerationType.TABLE)

	private Long id;



	private Date vdate;



	@Column(length = 200)

	private String fromUrl;



	@Column(length = 200)

	private String url;



	@Column(length = 50)

	private String ip;



	private Integer status;

	

	@Column(length=1000)

	private String remark;

	

	@ManyToMany

	private List<SystemVisitDir> dirs=new java.util.ArrayList<SystemVisitDir>();

	public Long getId() {

		return id;

	}

//setter及getter

}
2、SystemVisitDir 模型

@Entity

@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)

@FormPO(inject = "title,url,parent,sequence")

public class SystemVisitDir implements Serializable, IJsonObject {

	private static final long serialVersionUID = -6636698603262819988L;

	@Id

	@javax.persistence.GeneratedValue(strategy = javax.persistence.GenerationType.TABLE)

	private Long id;



	@Column(length = 20)

	@Field(validators = { @Validator(name = "string", value = "blank;min:2;max:20", required = true) })

	private String title;// 栏目名称



	@Column(length =500)

	@Field(validators = { @Validator(name = "url", required = true) })

	private String url;// 栏目url



	private Long num = 0l;// 访问量



	private Date lastVisitTime;// 最后一次访问时间



	private Integer sequence = 1;// 排序



	@javax.persistence.ManyToOne(fetch = FetchType.EAGER)

	@POLoad(name = "parentId")

	private SystemVisitDir parent;// 父级目录



	private Integer status = 0;



	@OneToMany(mappedBy = "parent")

	@OrderBy("sequence")

	private List<SystemVisitDir> children = new java.util.ArrayList<SystemVisitDir>();// 子目录



//getter及setter

}

3、集合查询

集合查询主要涉及到一些关键字,主要是EMPTY及MEMBER OF。下面的例子查询某一个目录里面的VisitInfo

public Page doListVisit(WebForm form, Module module) {   QueryObject qo = form.toPo(QueryObject.class);   String id = CommUtil.null2String(form.get("parentId"));   if (!"".equals(id)) {    SystemVisitDir parent = this.service.getVisitDir(new Long(id));    qo.addQuery("(?  MEMBER OF obj.dirs)",new Object[]{parent});   }   IPageList pageList = service.queryVisistInfo(qo);   form.jsonResult(pageList);   return Page.JSONPage;  }

发表于 @ 2008年06月22日 19:22:19|评论(loading...)|收藏

新一篇: 驾驭ext,你不是一个人战斗,网下ext/ajax技术学习及交流!  | 旧一篇: 足球江湖:这个6月注定非凡

评论

#fireflyc 发表于2008-06-24 21:30:55  IP: 125.45.130.*
JPA这个东西是万金油,好用。
发表评论  


登录
Csdn Blog version 3.1a
Copyright © 大峡