剖析Hibernate命名查询

开发 后端
这里介绍Hibernate命名查询,Hibernate最优秀的功能之一就在于它能够在您的映射文件中声明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 注释,如下所示:

  1. @NamedQueries{  
  2. {  
  3. @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" )  
  4. }  

一旦完成了定义,您就可以像调用其他任何其他Hibernate命名查询一样来调用它们。

【编辑推荐】

  1. 获取Hibernate关联关系的方法
  2. 详细讲述Hibernate绑定JNDI
  3. Hibernate Customer客户对象
  4. 讲述Hibernate Session缓存
  5. 简单分析Hibernate读取Clob
责任编辑:佚名 来源: 51CTO
相关推荐

2009-09-27 13:42:05

Hibernate E

2009-06-26 16:27:10

Hibernate创建

2009-09-27 17:13:36

Hibernate V

2009-09-24 09:45:23

Hibernate批量

2009-09-23 17:18:16

Hibernate S

2009-09-25 09:36:55

Hibernate核心

2009-09-22 15:22:08

Hibernate性能

2009-09-23 14:00:07

Hibernate连接

2009-09-28 14:54:33

Hibernate映射

2009-09-29 17:29:43

Hibernate S

2009-09-23 17:48:00

Hibernate事务

2009-09-28 10:52:33

Hibernate主键主键生成

2009-09-22 14:12:16

Hibernate S

2009-09-22 08:39:59

Hibernate F

2009-06-26 10:01:00

Hibernate的查

2009-06-17 08:47:00

Hibernate优化

2009-09-24 15:27:41

Hibernate查询

2009-06-18 09:14:08

Hibernate H

2009-09-17 13:15:20

LINQ查询

2009-09-29 16:29:40

Hibernate查询
点赞
收藏

51CTO技术栈公众号