浏览 2770 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-27
可否把一个查询的结果绑定为一个实体的属性。 例如: <class name="test" table="test"> <id name="id"><generator class="native"/></id> <property name="field1" type="string"/> <property name="field2" type="string"/> <!-- 想根据field1,field2这两个值查询一个结果集,绑定到本对象的一个list集合上,行吗?--> <list name="mySearchLit"> <!-- some query like:select * from test2 a where a.field1=field1 and a.field2=field2 --> <l i st> </class> 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-08-27
一般情况下在实体外边做这个查询当然非常简单。但是我有特殊地方需要在实体内部做这个绑定list
为什么要绑定呢? 这样做关系,相互包含的时候不会死循环导致堆栈溢出吗? 因为需要根据实体属性来查询结果集,所以在实体上绑定这个查询用起来会方便些。 |
|
返回顶楼 | |
发表时间:2007-08-28
命名查询与对象集合绑定可以解决此问题:
<class name="Organization" lazy="true"> <id name="id" unsaved-value="0"> <generator class="increment"/> </id> <property name="name" not-null="true"/> <set name="employments" lazy="true" inverse="true"> <key column="employer"/> <one-to-many class="Employment"/> <loader query-ref="organizationEmployments"/> </set> <loader query-ref="organization"/> </class> <sql-query name="organizationEmployments"> <return alias="empcol" collection="Organization.employments"/> <return alias="emp" class="Employment"/> SELECT {empcol.*}, EMPLOYER AS {emp.employer}, EMPLOYEE AS {emp.employee}, STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate}, REGIONCODE as {emp.regionCode}, ID AS {emp.id} FROM EMPLOYMENT empcol WHERE EMPLOYER = :id AND DELETED_DATETIME IS NULL </sql-query> |
|
返回顶楼 | |