Hibernate 4.0逻辑表达式或条件贯穿整个类';性质

Hibernate 4.0逻辑表达式或条件贯穿整个类';性质,hibernate,Hibernate,我有一个项目,我必须在数据库上实现一种惰性搜索 我想做的是使用org.hibernate.criteria.Example,但对 每个属性 例如,假设我有一个如下所示的类 public class Cat{ private String name; private String breed; private Date birthDay; /*getter and setter omitted*/ } 我用一些值设置了所有三个字段 Cat cat2Find = new Cat(

我有一个项目,我必须在数据库上实现一种惰性搜索

我想做的是使用org.hibernate.criteria.Example,但对 每个属性

例如,假设我有一个如下所示的类

public class Cat{
   private String name;
   private String breed;
   private Date birthDay;
/*getter and setter omitted*/
}
我用一些值设置了所有三个字段

Cat cat2Find = new Cat();
cat2Find.setName("Nabi");
cat2Find.setBreed("That hairless Egyptian cat");
cat2Find.setBirthDay( someDate );    //5th May 2005 for example
我想找一只猫 谁的名字叫“纳比” 或者品种是“埃及无毛猫” 或者谁的生日是2005年5月5日

我尝试使用org.hibernate.criteria.Example,但show_sql向我展示了每个字段的用法和条件。 我还尝试将org.hibernate.criteria.disconction与LogicalPression结合使用 但是遍历所有字段太麻烦了

我想知道是否有像Criteria.Example这样工作的类,但带有和的条件 每个字段或我可以选择“和”或“或”

感谢您抽出时间:)


通过这种方式,您可以使用“AND”/“或“

进行简单查询,谢谢,但是有没有一种方法可以在不为bean中的每个属性添加限制的情况下进行查询?就像criteron,举个例子?
    // Use disjunction() or conjunction() if you need more than 2 expressions
Disjunction aOrBOrC = Restrictions.disjunction(); // A or B or C
aOrBOrC.add(Restrictions.eq("b", "a"));
aOrBOrC.add(Restrictions.eq("b", "b"));
aOrBOrC.add(Restrictions.eq("b", "c"));

// Use Restrictions.and() / or() if you only have 2 expressions
crit.add(Restrictions.and(Restrictions.eq("a", "abc"), aOrBOrC));