用了这么长时间的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 框架中用于简化数据访问操作的重要工具,它提供了一系列预定义的方法,方便开发者在实际的软件开发中执行常见的数据库查询和操作。这些方法主要集中在 `HibernateTemplate` 类中,...
这个基类应包含Hibernate SessionFactory的初始化,以及基本的保存(Save)、删除(Delete)、更新(Update)和查询(FindById)方法。 2. **查询扩展**:为了实现多条件模糊查询,我们需要在DAO中添加一些高级查询...
这个方法会使用Hibernate的`Session`对象的`get`方法来执行查询。 2. **条件查询**:通过传入HQL(Hibernate Query Language)或者Criteria API来实现动态查询。例如`public List<T> findByExample(T exampleEntity...
`HibernateTemplate`是Spring提供的用于封装Hibernate操作的类,它简化了Hibernate的使用,提供了许多方便的方法来执行常见的CRUD操作和其他复杂查询。通过`HibernateTemplate`,我们可以避免编写大量的Hibernate ...
本篇将详细探讨"hibernate公共查询"这一主题,以及如何实现一个包含各类查询方法的公共查询类。 首先,Hibernate的核心理念是对象关系映射(ORM),它将数据库中的表映射为Java对象,通过对象的方式来操作数据。...
在本文中,我们将深入探讨Hibernate中的一些基本查询方法,这对于初学者掌握Hibernate进行数据操作非常有帮助。 1. **保存(Save)** Hibernate提供了`save()`方法来保存一个持久化对象到数据库。例如,如果有一个...
其中,`HibernateTemplate`类作为Spring框架对Hibernate的支持之一,提供了丰富的数据操作方法,大大简化了开发者的工作量。接下来,我们将深入探讨`HibernateTemplate`中的一些核心方法及其应用场景。 #### 一、...
在这个例子中,`findByCriteria`方法接受一个Criteria对象作为参数,而`findByExample`方法使用了Example对象来构造查询,根据实体类对象的属性匹配数据库中的记录。 总结起来,"Spring Hibernate 泛型DAO"的主题...
在上述描述中,提到了几个使用Hibernate HQL进行数据查询的方法,下面将详细解释: 1. **find(String queryString)**: 这是最基础的HQL查询方法,接受一个HQL语句作为参数,返回所有匹配该查询的实体对象。例如,...
3. **查询接口**:提供基于HQL(Hibernate Query Language)或SQL的查询方法,如`findByExample()`, `findByName()`, `findAll()`。 4. **分页查询**:支持`listByPage(int start, int pageSize)`,便于数据量大的...
gethibernatetemplate的find方法,find(String queryString);find(String queryString , Object value);find(String queryString, Object[] values);findByExample(Object exampleEntity);findByExample(Object ...
`findByExample` 方法允许根据一个实体对象来构建查询,这种方式非常适合用于复杂对象的查询。例如: - **基本使用**:`User u = new User(); u.setPassword("123"); list = this.getHibernateTemplate()....
### HibernateTemplate 的方法使用 #### 一、简介与配置方式 **HibernateTemplate** 是 Spring 框架中用于简化 Hibernate 使用的一个工具类。它通过 AOP(面向切面编程)的思想,封装了大量的 CRUD(创建、读取、...
`getHibernateTemplate()`方法是Spring提供的一个用于执行Hibernate操作的方法。它位于`org.springframework.orm.hibernate5.HibernateTemplate`类中,是Spring对Hibernate进行封装的一部分。通过这个模板方法,...
该方法是在`findByExample`基础上增加了分页功能。可以指定从哪个位置开始查询以及返回多少条数据。 **示例代码**: ```java User u = new User(); u.setPassword("123"); u.setName("bb"); List<User> userList = ...
在学习Spring框架与Hibernate集成的过程中,掌握HQL(Hibernate Query Language)的使用方法是十分重要的。本文档将详细介绍如何在Spring环境中运用HQL进行数据查询操作,包括基本查询、参数绑定以及命名查询等高级...
此外,还有如`findByExample()`这样的方法,根据实体对象的属性进行查询。 5. **回调机制**:当`getHibernateTemplate()`的标准方法无法满足特定需求时,可以使用`HibernateCallback`接口进行自定义操作。这允许你...
9. **查询方法命名**: Spring Data JPA支持根据方法名生成SQL查询,例如,`findAll()`对应`SELECT * FROM TABLE`,`findByExample()`则会根据参数创建对应的WHERE子句。 10. **自定义查询**: 如果标准的命名查询...
2. **Query Methods**:Spring Data JPA支持通过方法名生成查询,例如,`findAll()`将执行`SELECT * FROM table`,`findByExample()`可以根据传入的对象属性生成对应的WHERE子句。 3. **Custom Implementations**:...