`
terry_yip
  • 浏览: 38773 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Hibernate查询的问题

阅读更多
public List studentQuery()
{
 String queryString="from Student s where s.id=:id and s.name:=name and s.age:=age"
 Query queryObject = session.createQuery(queryString);
 prepareQuery(queryObject);
 Student valueBean=new Student();
 valueBean.setName("Terry");
 queryObject.setProperties(valueBean);
 return queryObject.list();
}


结果,在屏幕上观察到生成的hql语句的where部分,却有  student0_.id=? student0.age=? 我想这里的?号,是一个null,因为Student的id,age
属性的初始值,是为null,请问有什么hibernate的设置,可以检测到属性为null,就不加入到占位符中呢?我想这个情况比较有代表性,我们在做项目时,常常都会有几个条件进行搜索的,搜索页的form值常常是映射到一个FormBean里头的,如果把formBean直接作为一个valueBean来放入QueryObject中进行查询,会很方便。
分享到:
评论
3 楼 yqs8341 2008-05-04  
terry_yip 写道
public List studentQuery()
{
 String queryString="from Student s where s.id=:id and s.name:=name and s.age:=age"
 Query queryObject = session.createQuery(queryString);
 prepareQuery(queryObject);
 Student valueBean=new Student();
 valueBean.setName("Terry");
 queryObject.setProperties(valueBean);
 return queryObject.list();
}


结果,在屏幕上观察到生成的hql语句的where部分,却有  student0_.id=? student0.age=? 我想这里的?号,是一个null,因为Student的id,age
属性的初始值,是为null,请问有什么hibernate的设置,可以检测到属性为null,就不加入到占位符中呢?我想这个情况比较有代表性,我们在做项目时,常常都会有几个条件进行搜索的,搜索页的form值常常是映射到一个FormBean里头的,如果把formBean直接作为一个valueBean来放入QueryObject中进行查询,会很方便。


试一下QBE QBC结合来做动态查询
但要牺牲一下效率
2 楼 steven_652 2008-03-24  
你问的是关于动态查询的问题,这是要自己手工写的,hibernate API里面没有这个功能的。
1 楼 terry_yip 2008-03-24  
j2ee_ysy 写道
Query query=session.createQuery(from Student s where s.id= ?,s.name=?and s.age:=age);
query.setString(0,"Name");
query.setInteger(1,"Age");
return query.list();

不更好


谢谢,你的这种方法呢,是要手工地从FormBean里头拿出值来填充到占位符中,我的那种方法,只要把 FormBean放入去就可以了,我之所以加“valueBean.setName("Terry");   ”,是为了说明问题,其实valueBean里面早有自动有值了。 至于值从哪里来,无论是JSF或webwork或其它的表现层框架,都支持用页面标签,就把html form的值映射到一个java对象中的。

相关推荐

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的...需要注意的是,在编写连表查询时要充分考虑性能问题,避免因查询复杂度过高而导致性能瓶颈。

    通用的hibernate查询

    【hibernate查询详解】 Hibernate,作为一款强大的Java对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的方式来处理数据库,从而避免了传统的JDBC编码方式带来的复杂性。本篇文章将...

    struts+hibernate查询所有记录

    ### Struts+Hibernate查询所有记录 #### 一、概述 在Java Web开发中,Struts与Hibernate是非常流行的框架组合,用于构建复杂的企业级应用。本文将详细介绍如何利用Struts和Hibernate来实现对Oracle数据库中所有...

    Hibernate_query查询数据表中的一个字段.

    Hibernate提供了一种灵活的查询语言——HQL(Hibernate Query Language),以及 Criteria 查询和 Criteria API,它们都可以用来获取数据表中的特定字段。 二、Hibernate配置 在使用Hibernate进行查询前,首先需要...

    hibernate多表联合查询

    Hibernate作为一款流行的Java持久层框架,提供了一种非常便捷的方式来处理这些问题。本文将详细介绍如何利用Hibernate进行多表联合查询,并通过一个具体的例子来展示其强大功能。 #### 二、多表联合查询概述 多表...

    Hibernate查询练习小例子

    利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的...本项目主要是为了练习使用Hibernate查询数据库。如果有什么问题可以发站内信或者邮件asddf14@hotmail.com。我会尽量解答一下~~~

    Hibernate分页查询小结

    Hibernate分页查询小结

    hibernate实现动态SQL查询

    相比静态SQL,动态SQL更加灵活,能够适应复杂多变的查询需求,避免了硬编码SQL带来的问题,如代码冗余、难以维护等。 三、Hibernate中的动态SQL 在Hibernate中,我们通常使用HQL(Hibernate Query Language)或...

    Hibernate查询语言HQL.PPT

    Hibernate 查询语言 HQL Hibernate 查询语言 HQL 是一种面向对象的查询语言,用于检索对象。它提供了灵活多样的查询机制,包括导航对象图、通过标识符检索、使用 HQL 检索对象、使用 Hibernate 条件 API 和使用本地...

    hibernate 模糊查询 分页

    本篇文章将深入探讨如何使用Hibernate实现模糊查询和分页功能,这对于任何需要处理大量数据的应用程序来说都是至关重要的技能。 首先,让我们了解Hibernate的核心概念。Hibernate是一个开源的JPA(Java Persistence...

    hibernate查询代码

    最后,`hibernate查询`这个压缩包可能包含了一些示例代码和配置文件,用于演示如何在Java项目中实现上述查询方式。通过分析这些文件,你可以更好地理解Hibernate查询的工作原理,并将其应用到自己的项目中。 总之,...

    hibernate实现递归查询

    本文将深入探讨如何使用Hibernate实现递归查询,以解决在数据层次结构中涉及父节点与子节点关系时的问题。递归查询通常用于处理树形结构的数据,例如组织结构、菜单系统或者文件目录等。 首先,我们需要了解递归的...

    hibernate里面的 两种查询

    在Java的持久化框架Hibernate中,查询是连接应用程序与数据库的关键环节。Hibernate提供了两种主要的查询方式:离线查询(Criteria API)和HQL(Hibernate Query Language)语句查询。这两种查询方法各有特点,适用...

    Hibernate的MySql查询.rar

    本文将深入探讨在使用Hibernate进行MySQL查询时的一些关键知识点,以帮助开发者更好地理解和应用这些技术。 首先,我们需要理解Hibernate的核心概念。Hibernate通过提供一个中间层,将Java对象与数据库表进行映射,...

    Hibernate分页查询原理解读

    ### Hibernate 分页查询原理详解 #### 一、引言 在大数据量处理场景下,分页查询是提高数据检索效率的重要手段之一。Hibernate作为Java领域内最常用的持久层框架之一,其内置的分页功能非常实用且高效。本文将深入...

    Hibernate 函数 ,子查询 和原生SQL查询

    在使用原生SQL时,需要注意的是,你需要自己处理结果的映射和事务管理,这可能比使用HQL(Hibernate查询语言)更加复杂。 总结,Hibernate提供了丰富的函数支持,使得我们在处理数据时更加便捷。同时,子查询功能...

    hibernate的多态查询

    标题“hibernate的多态查询”指的是在Hibernate框架中,如何进行涉及不同子类的对象查询,这是ORM(对象关系映射)中的一个重要特性,旨在提高代码的灵活性和可扩展性。多态查询允许我们编写一次查询,而无需关心...

    Hibernate在查询条件中创建List集合

    最后,为了防止数据的安全性问题,比如防止SQL注入,使用Hibernate的查询API可以有效避免这类风险,因为它们都是预编译的,可以自动转义特殊字符。 总结,使用Hibernate在查询条件中创建List集合是Java开发中常见的...

Global site tag (gtag.js) - Google Analytics