`
hybxiaodao
  • 浏览: 246675 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

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代码
  1. Cat cat =  new  Cat();   
  2. cat.setSex( 'F' );   
  3. cat.setColor(Color.BLACK);   
  4. List results = session.createCriteria(Cat. class )   
  5.   .add( Example.create(cat))   
  6.   .list();  

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

Java代码
  1. Example example = Example.create(cat)   
  2.   .excludeZeroes()        //排除值为0的属性    
  3.   .excludeProperty( "color" //排除 color属性    
  4.   .ignoreCase()          //忽略大小写    
  5.   .enableLike();          //启用模糊查询    
  6. List results = session.createCriteria(Cat. class )   
  7.   .add(example)   
  8.   .list();  

甚至可以使用examples在关联对象上放置条件。

Java代码
  1. List results = session.createCriteria(Cat. class )   
  2.   .add( Example.create(cat) )   
  3.   .createCriteria( "mate" )   
  4.     .add( Example.create( cat.getMate() ) )   
  5.   .list(); 

分享到:
评论
1 楼 七月_month 2013-12-07  
[color=orange][/color][size=x-small][/size]   [b][/b][i][/i][u][/u]

相关推荐

    本人写的Hibernate超级通用DAO

    `List<T> findByExample(T example)`,根据示例对象匹配数据;以及`List<T> findByNamedQuery(String namedQuery, Map, Object> params)`,使用预定义的命名查询。 3. **分页查询**:在大型项目中,通常需要实现...

    hibernate常用的模板方法

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

    Spring 和hibernate集成自学笔记

    ### Spring与Hibernate集成知识点详解 #### 一、Spring与Hibernate集成概述 在现代软件开发中,Spring框架以其强大的依赖注入(DI)和面向切面编程(AOP)能力成为Java领域最受欢迎的企业级应用开发框架之一。而...

    超好用的hibernate查询工具类

    例如`public List<T> findByExample(T exampleEntity)`,可以基于一个实例对象的属性来构建查询条件。 3. **分页查询**:为了提高性能,通常需要进行分页查询。工具类可以提供如`public Page<T> findPage(Class<T> ...

    hibernate公共查询

    - `findByExample(entity)`: 基于实例属性的查询,`Session`的`createCriteria()`可以接受对象实例,根据其属性构建查询条件。 - `findByCriteria(Criteria criteria)`: 使用`Criteria API`自定义复杂查询,可以...

    Hibernate中查询的法方

    在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层SQL语句。在本文中,我们将深入探讨Hibernate中的一些基本查询方法,这对于初学者...

    spring hibernate 泛型DAO

    在Java的Web开发中,Spring和Hibernate是两个非常重要的框架,它们分别负责IoC(Inversion of Control,控制反转)和ORM(Object-Relational Mapping,对象关系映射)。Spring框架提供了一个强大的容器来管理对象的...

    hibernate模板类详解

    ### Hibernate 模板类详解 在Java开发领域中,Hibernate框架是进行对象关系映射(Object-Relational Mapping,简称ORM)的一种常用工具,它能够将面向对象模型的数据与关系型数据库之间的数据进行转换,从而简化了...

    封装hibernate统一操作接口

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

    hibernate-hql 资料大全

    Hibernate HQL,全称为Hibernate Query Language,是Hibernate框架中用于操作对象关系映射(ORM)的查询语言。它类似于SQL,但设计目的是针对Java对象,而不是数据库表。HQL允许开发者以面向对象的方式编写查询,...

    gethibernatetemplate的find方法

    findByExample(Object exampleEntity);findByExample(Object exampleEntity, int firstResult, int maxResults);findByNamedParam(String queryString , String paramName , Object value);findByNamedParam...

    HibernateTemplate的方法使用

    **HibernateTemplate** 是 Spring 框架中用于简化 Hibernate 使用的一个工具类。它通过 AOP(面向切面编程)的思想,封装了大量的 CRUD(创建、读取、更新、删除)操作,使得开发者能够更加专注于业务逻辑的实现,而...

    getHibernateTemplate()使用方法

    Spring框架进一步封装了Hibernate,提供了`getHibernateTemplate()`方法,使得在Spring环境中使用Hibernate变得更加便捷。本文将详细介绍`getHibernateTemplate()`的使用方法,并通过具体的代码示例帮助读者更好地...

    getHibernateTemplate

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

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

    HQL(Hibernate Query Language)是Hibernate框架提供的一种查询语言,它基于SQL标准,但更加强调面向对象的特点。在实际应用开发中,HQL被广泛用于数据检索、更新等操作。下面将详细介绍HQL语言中的一些常用的方法...

    Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。

    public List findByExample(Users instance) { log.debug("finding Users instance by example"); try { List results = ...; // 这里省略了具体的查询逻辑 return results; } catch (RuntimeException re) { ...

    Spring中hql语句的常用方法

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

    springdatajpa.zip

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

Global site tag (gtag.js) - Google Analytics