快速业务通道

Hibernate3.x:最出色的ORM框架 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
命名查询。这个查询在任何时候当我们使用get(),load()装载person或使用惰性关联获取数据时都会执行它。一般来讲,这个命名查询应该是一个SQL语句,如下面如示:

<sql-query name="person"> <return alias="p" class="Person" lock-mode="upgrade"/> SELECT NAME AS {p.name}, ID AS {p.id} FROM PERSON WHERE ID=? FOR UPDATE </sql-query>

注:一个本地的SQL查询可能会返回多个"实体列",但本例比较简单,只返回了一个实体。

Employment相对更复杂一点,而且并不是所有的属性都包括在INSERT和UPDATE中。定义如下:

<class name="Employment" lazy="true"> <id name="id" unsaved-value="0"> <generator class="increment"/> </id> <many-to-one name="employee" not-null="true" update="false"/> <many-to-one name="employer" not-null="true" update="false"/> <property name="startDate" not-null="true" update="false" insert="false"/> <property name="endDate" insert="false"/> <property name="regionCode" update="false"/> <loader query-ref="employment"/> <sql-insert> INSERT INTO EMPLOYMENT (EMPLOYEE, EMPLOYER, STARTDATE, REGIONCODE, ID) VALUES (?, ?, CURRENT_DATE, UPPER(?), ?) </sql-insert> <sql-update>UPDATE EMPLOYMENT SET ENDDATE=? WHERE ID=?</sql-update> <sql-delete>DELETE FROM EMPLOYMENT WHERE ID=?</sql-delete> </class>

Hibernate3.x:最出色的ORM框架(2)

时间:2011-03-07 IT168 极地圣火

下面是命名查询employment的定义:

<sql-query name="employment"> <return alias="emp" class="Employment"/> SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer}, STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate}, REGIONCODE as {emp.regionCode}, ID AS {emp.id} FROM EMPLOYMENT WHERE ID = ? </sql-query>

下面的Organization的定义:

<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"/> <sql-insert> INSERT INTO ORGANIZATION (NAME, ID) VALUES ( UPPER(?), ? ) </sql-insert> <sql-update>UPDATE ORGANIZATION SET NAME=UPPER(?) WHERE ID=?</sql-update> <sql-delete>DELETE FROM ORGANIZATION WHERE ID=?</sql-delete> </class>

下面是两个命名查询的定义:

<sql-query name="organization"> <return alias="org" class="Organization"/> SELECT NAME A

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号