Hibernate的QBE查询方式

以下是从帮助文档中复制过来的。
特别要注意版本属性、标识符和关联被忽略。
默认情况下值为null的属性将被排除。
如果你的持久类的属性有int等类型,则须给它赋值,因为默认情况下它的值不是null,而是0。
当然这里也可以自己去设置example,比如.excludeZeroes()  .excludeProperty()
详见下文
当为一个criteria构建一个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();


版本属性、标识符和关联被忽略。默认情况下值为null的属性将被排除。
你可以自行调整Example使之更实用。

Example example = Example.create(cat) .excludeZeroes() //exclude zero valued properties 
     .excludeProperty("color") //exclude the property named "color" 
     .ignoreCase() //perform case insensitive string comparisons 
     .enableLike(); //use like for string comparisons
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();

猜你喜欢

转载自ldbjakyo.iteye.com/blog/1255324