用了这么长时间的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封装方法,显现使用一个dao,service,impl来关联两个表的操作,实现,增删改查基本操作
hibernate常用方法集合
Netbeans 配置 hibernate 的方法
Hibernate基本数据操作方法 java struts hibernate
hibernate方法实现
Hibernate 可以对类的属性或者方法进行注解。属性对应 field 类别,方法的 getXxx() 对 应
hibernate查询方法 大全 hql等
Hibernate持久层方法汇总 session.load, session.find, session.iterator, session.save, session.update, session.saveorupdate
spring hibernate整合的底层数据操作方法,提供增删改查等通用方法
Hibernate操作数据库的方法.doc
Hibernate查询方法之探析.doc
hibernate 资料hibernate 资料hibernate 资料hibernate 资料
hibernate查询,spring+hibernate
Spring+Struts+Hibernate整合方法
Hibernate.jar包,Hibernate可以应用在任何使用JDBC的场合,包含 hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-...
hibernate模板方法,在实际的软件开发过程中很有用
Hibernate的Template方法以及SQL简介 Template方法18种以及SQL23种
hibernate3hibernate3hibernate3hibernate3hibernate3hibernate3hibernate3hibernate3