`
helloandroid
  • 浏览: 275880 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
107f8db3-b009-3b79-938a-dafddb49ea79
Android腾讯微博客户...
浏览量:95739
社区版块
存档分类
最新评论

Hibernate findByExample 方法

 
阅读更多
用了这么长时间的hibernate/spring,如果不是今天用的findByExample方法到现在还不知道findByExample的机制。惭愧
Class User{
    String username;
    String password = "默认口令";
    Company company;
    getter()&setter().....
}
 
Company company = companyDao.getById("id");
User user = new User();
user.setSid("主键");
uer.setUsername("user");
use.setCompany(company);
userDao.findByExample(user);
 
这个时候的SQL条件为:
 
    select * from user
    where username = ?
    and password = ?
 


findByExample()使用时得出结论: 
1.不支持主键 
2.不支持关联 
3.不支持NULL 



查询示例
org.hibernate.criterion.Example
类允许你通过一个给定实例构建一个条件查询。
此实例的属性值将做成查询条件。

Java代码

Cat cat = new Cat();   
cat.setSex('F');   
cat.setColor(Color.BLACK);   
List results = session.createCriteria(Cat.class)   
  .add( Example.create(cat))   
  .list();  
Example.create(cat) 表示根据cat这个对象来构造一个查询条件。
上面这条语句将查询sex 为 F 而且Color为BLACK的所有Cat记录。
版本属性、标识符和关联被忽略。默认情况下值为null的属性将被排除。 
可以自行调整Example使之更实用。

Java代码

Example example = Example.create(cat)   
  .excludeZeroes()       //排除值为0的属性   
  .excludeProperty("color") //排除 color属性   
  .ignoreCase()         //忽略大小写   
  .enableLike();         //启用模糊查询   
List results = session.createCriteria(Cat.class)   
  .add(example)   
  .list();  
甚至可以使用examples在关联对象上放置条件。

Java代码

List results = session.createCriteria(Cat.class)   
  .add( Example.create(cat) )   
  .createCriteria("mate")   
    .add( Example.create( cat.getMate() ) )   
  .list();  

转自:http://helloandroid.iteye.com/admin/blogs/1164600
分享到:
评论

相关推荐

    hibernate常用的模板方法

    Hibernate 模板方法是 Hibernate 框架中用于简化数据访问操作的重要工具,它提供了一系列预定义的方法,方便开发者在实际的软件开发中执行常见的数据库查询和操作。这些方法主要集中在 `HibernateTemplate` 类中,...

    本人写的Hibernate超级通用DAO

    这个基类应包含Hibernate SessionFactory的初始化,以及基本的保存(Save)、删除(Delete)、更新(Update)和查询(FindById)方法。 2. **查询扩展**:为了实现多条件模糊查询,我们需要在DAO中添加一些高级查询...

    超好用的hibernate查询工具类

    这个方法会使用Hibernate的`Session`对象的`get`方法来执行查询。 2. **条件查询**:通过传入HQL(Hibernate Query Language)或者Criteria API来实现动态查询。例如`public List<T> findByExample(T exampleEntity...

    Spring 和hibernate集成自学笔记

    `HibernateTemplate`是Spring提供的用于封装Hibernate操作的类,它简化了Hibernate的使用,提供了许多方便的方法来执行常见的CRUD操作和其他复杂查询。通过`HibernateTemplate`,我们可以避免编写大量的Hibernate ...

    hibernate公共查询

    本篇将详细探讨"hibernate公共查询"这一主题,以及如何实现一个包含各类查询方法的公共查询类。 首先,Hibernate的核心理念是对象关系映射(ORM),它将数据库中的表映射为Java对象,通过对象的方式来操作数据。...

    Hibernate中查询的法方

    在本文中,我们将深入探讨Hibernate中的一些基本查询方法,这对于初学者掌握Hibernate进行数据操作非常有帮助。 1. **保存(Save)** Hibernate提供了`save()`方法来保存一个持久化对象到数据库。例如,如果有一个...

    hibernate模板类详解

    其中,`HibernateTemplate`类作为Spring框架对Hibernate的支持之一,提供了丰富的数据操作方法,大大简化了开发者的工作量。接下来,我们将深入探讨`HibernateTemplate`中的一些核心方法及其应用场景。 #### 一、...

    spring hibernate 泛型DAO

    在这个例子中,`findByCriteria`方法接受一个Criteria对象作为参数,而`findByExample`方法使用了Example对象来构造查询,根据实体类对象的属性匹配数据库中的记录。 总结起来,"Spring Hibernate 泛型DAO"的主题...

    hibernate-hql 资料大全

    在上述描述中,提到了几个使用Hibernate HQL进行数据查询的方法,下面将详细解释: 1. **find(String queryString)**: 这是最基础的HQL查询方法,接受一个HQL语句作为参数,返回所有匹配该查询的实体对象。例如,...

    封装hibernate统一操作接口

    3. **查询接口**:提供基于HQL(Hibernate Query Language)或SQL的查询方法,如`findByExample()`, `findByName()`, `findAll()`。 4. **分页查询**:支持`listByPage(int start, int pageSize)`,便于数据量大的...

    gethibernatetemplate的find方法

    gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...

    hql语言中的一些常用的方法

    `findByExample` 方法允许根据一个实体对象来构建查询,这种方式非常适合用于复杂对象的查询。例如: - **基本使用**:`User u = new User(); u.setPassword("123"); list = this.getHibernateTemplate()....

    HibernateTemplate的方法使用

    ### HibernateTemplate 的方法使用 #### 一、简介与配置方式 **HibernateTemplate** 是 Spring 框架中用于简化 Hibernate 使用的一个工具类。它通过 AOP(面向切面编程)的思想,封装了大量的 CRUD(创建、读取、...

    getHibernateTemplate()使用方法

    `getHibernateTemplate()`方法是Spring提供的一个用于执行Hibernate操作的方法。它位于`org.springframework.orm.hibernate5.HibernateTemplate`类中,是Spring对Hibernate进行封装的一部分。通过这个模板方法,...

    Spring中常用的hql查询方法

    该方法是在`findByExample`基础上增加了分页功能。可以指定从哪个位置开始查询以及返回多少条数据。 **示例代码**: ```java User u = new User(); u.setPassword("123"); u.setName("bb"); List<User> userList = ...

    Spring中hql语句的常用方法

    在学习Spring框架与Hibernate集成的过程中,掌握HQL(Hibernate Query Language)的使用方法是十分重要的。本文档将详细介绍如何在Spring环境中运用HQL进行数据查询操作,包括基本查询、参数绑定以及命名查询等高级...

    getHibernateTemplate

    此外,还有如`findByExample()`这样的方法,根据实体对象的属性进行查询。 5. **回调机制**:当`getHibernateTemplate()`的标准方法无法满足特定需求时,可以使用`HibernateCallback`接口进行自定义操作。这允许你...

    springdatajpa.zip

    9. **查询方法命名**: Spring Data JPA支持根据方法名生成SQL查询,例如,`findAll()`对应`SELECT * FROM TABLE`,`findByExample()`则会根据参数创建对应的WHERE子句。 10. **自定义查询**: 如果标准的命名查询...

    员工操作spring mvc3三大框架

    2. **Query Methods**:Spring Data JPA支持通过方法名生成查询,例如,`findAll()`将执行`SELECT * FROM table`,`findByExample()`可以根据传入的对象属性生成对应的WHERE子句。 3. **Custom Implementations**:...

Global site tag (gtag.js) - Google Analytics