Hibernate查询之Example查询

org.hibernate.criterion.Example

类允许你通过一个给定实例构建一个条件查询。
此实例的属性值将做成查询条件。
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使之更实用。
Example example = Example.create(cat)
  .excludeZeroes()       //排除值为0的属性
  .excludeProperty("color") //排除 color属性
  .ignoreCase()         //忽略大小写
  .enableLike();         //启用模糊查询
List results = session.createCriteria(Cat.class)
  .add(example)
  .list();
甚至可以使用examples在关联对象上放置条件。
List results = session.createCriteria(Cat.class)
  .add( Example.create(cat) )
  .createCriteria("mate")
    .add( Example.create( cat.getMate() ) )
  .list();


原文地址:https://www.cnblogs.com/marcotan/p/4256929.html