剖析Hibernate命名查詢
本文向大家介紹Hibernate命名查詢,可能好多人還不了解Hibernate命名查詢,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
Hibernate是一套開源的用于對象/關系持久化和查詢服務的Java庫。現在Hibernate的***版本是3.1.在這個版本中引入了一個新的特性:XML到數據庫映射(也可以看做是XML和數據庫的同步)。這個功能允許程序員將基于XML文檔的數據映射成數據庫(在當前版本的Hibernate中支持DB2、MySQL、Oracle和 PostgreSQL)。通過使用Hibernate,可以將XML文檔的節點(Node)映射成數據庫的列。每一個XML文件直接被映射成一個數據庫表,在這個過程中并不要求一個POJO.Hibernate可以根據需要生成相應的SQL(包括create、update、delete、insert 等)。
我們還可以通過Hibernate的配置文件生成新表,并將XML數據添加到數據庫中。還能以XML格式得到數據庫表中的數據,并通過XML的方式增加或更新數據。同時,Hibernate3.1還支持dom4j API,并且支持Ant.在本文中將學習如何使用Hibernate3.1開發一個基于XML映射的應用程序。
Hibernate***秀的功能之一就在于它能夠在您的映射文件中聲明Hibernate命名查詢。隨后即可通過代碼中的名稱調用此類查詢,這使您可以專注于查詢,而避免了 SQL 或者 HQL 代碼分散于整個應用程序中的情況。
也可以使用注釋來實現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" )- }
- }
一旦完成了定義,您就可以像調用其他任何其他Hibernate命名查詢一樣來調用它們。
【編輯推薦】