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
相关推荐
InfiniteIdeaGo 2020-09-16
knightwatch 2020-08-03
生活随笔 2020-07-15
ykmail 2020-06-23
secondid 2020-05-27
阿债的方寸天地 2020-04-30
hongsheyoumo 2020-04-29
伏雌摘星阁 2020-04-14
linuxisperfect 2020-03-06
tvk 2020-02-19
dongfangxiaozi 2020-02-17
jiangtie 2020-02-09
圆圆的世界CSDN 2020-01-30
jiangtie 2020-01-17
iamplane 2020-01-08
zmjzhangmj 2020-01-05
安得情怀似旧时 2019-12-16
Antech 2019-12-15