剖析Hibernate命名查詢
本文向大家介紹Hibernate命名查詢,可能好多人還不了解Hibernate命名查詢,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
Hibernate是一套開源的用于對(duì)象/關(guān)系持久化和查詢服務(wù)的Java庫(kù)?,F(xiàn)在Hibernate的***版本是3.1.在這個(gè)版本中引入了一個(gè)新的特性:XML到數(shù)據(jù)庫(kù)映射(也可以看做是XML和數(shù)據(jù)庫(kù)的同步)。這個(gè)功能允許程序員將基于XML文檔的數(shù)據(jù)映射成數(shù)據(jù)庫(kù)(在當(dāng)前版本的Hibernate中支持DB2、MySQL、Oracle和 PostgreSQL)。通過使用Hibernate,可以將XML文檔的節(jié)點(diǎn)(Node)映射成數(shù)據(jù)庫(kù)的列。每一個(gè)XML文件直接被映射成一個(gè)數(shù)據(jù)庫(kù)表,在這個(gè)過程中并不要求一個(gè)POJO.Hibernate可以根據(jù)需要生成相應(yīng)的SQL(包括create、update、delete、insert 等)。
我們還可以通過Hibernate的配置文件生成新表,并將XML數(shù)據(jù)添加到數(shù)據(jù)庫(kù)中。還能以XML格式得到數(shù)據(jù)庫(kù)表中的數(shù)據(jù),并通過XML的方式增加或更新數(shù)據(jù)。同時(shí),Hibernate3.1還支持dom4j API,并且支持Ant.在本文中將學(xué)習(xí)如何使用Hibernate3.1開發(fā)一個(gè)基于XML映射的應(yīng)用程序。
Hibernate***秀的功能之一就在于它能夠在您的映射文件中聲明Hibernate命名查詢。隨后即可通過代碼中的名稱調(diào)用此類查詢,這使您可以專注于查詢,而避免了 SQL 或者 HQL 代碼分散于整個(gè)應(yīng)用程序中的情況。
也可以使用注釋來實(shí)現(xiàn)Hibernate命名查詢,可以使用 @NamedQueries 和 @NamedQuery 注釋,如下所示:
- @NamedQueries{
- {
- @NamedQuery(name="planeType.findById",
query="select p from PlaneType p left join fetch p.modelPlanes where id=:id"),
@NamedQuery(name="planeType.findAll",query="select p from PlaneType p" ),
@NamedQuery(name="planeType.delete",query="delete from PlaneType where id=:id" )- }
- }
一旦完成了定義,您就可以像調(diào)用其他任何其他Hibernate命名查詢一樣來調(diào)用它們。
【編輯推薦】