springside的filter查询

在做一个有关联关系的User,Department两个对象的查询时,出了点问题。

这两个对象是many-to-one关系,先贴两个对象的实体类代码。

Department.java

@OneToMany(cascade =
	{ CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE, CascadeType.REFRESH }, fetch = FetchType.LAZY, mappedBy = "department")
	public Set<User> getUsers()
	{
		return users;
	}

  User.java 

@ManyToOne(cascade =	{ CascadeType.REFRESH, CascadeType.MERGE }, optional = false)	
@JoinColumn(name = "depa_Id")
	public Department getDepartment()
	{
		return department;
	}

 情况是一个界面 左边是个Department的树,右边是两个tabpanel:点击树节点更改两个tabpanel里的内容两个tabpanel分别是user,department。贴出JavaScript的激发事件代码;

function activate_view_cp(_obj){
		if(_obj.getId()=='child-tab1'){
			if(parentId == null)
			{
				document.getElementById('center_iframe').src="./department.action";
			}
			else
			{
				document.getElementById('center_iframe').src="./department.action?filter_EQL_parent_Id="+parentId;
			}
 		}else if(_obj.getId()=='child-tab2'){
 			if(parentId == null)
 			{
 	 			document.getElementById('center_iframe').src="./user.action";
 	 		}
 			else
 			{
 				document.getElementById('center_iframe').src="./user.action?filter_EQL_department.id="+parentId;
 	 		}
 		}
 	}

 点击部门的tabPanel时候的uri是:  ./department.action?filter_EQL_parent_Id="+parentId 。用户的tabPanel的uri是:./user.action?filter_EQL_department.id="+parentId 。注意这个地方department.id 实体属性对象的id !filter支持这样 让我太惊讶了 呵呵。省了好多事。

我刚开始的时候写成这样:./user.action?filter_EQL_depa_Id="+parentId   一直报找不到属性错误。

 

 

我用的是springside3.1.4版本本来他的filter查询是没有EQL,EQLI等。是我后来加的。其实也很简单只需要在两个类里修改一点代码就可以了

在 org.springside.modules.orm.PropertyFilter里增加定义。

在org.springside.modules.orm.hibernate.HibernateDao的buildPropertyFilterCriterion(final String propertyName, final Object value, final MatchType matchType)方法里增加处理就行了。ok

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值