问题描述
||
我正在使用Hibernate Core3.3.4.GA。我正在寻找一种简化代码的方法(如果可能的话)。现在,我想使用MyObj的实例搜索\“ MyObj \”类型的对象,该实例将被部分填充。所以我有 …
// inputObj is a partially populated object of type MyObj
Criteria crit = session.createCriteria(MyObj.class);
if (inputObj.getField1() != null) {
crit.add( Restrictions.eq( \"field1\",inputObj.getField1() );
}
if (inputObj.getField2() != null) {
crit.add( Restrictions.eq( \"field2\",inputObj.getField2() );
}
…
List objects = crit.list();
问题是,有20多个字段,因此代码繁重。有没有一种方法可以简化上述过程?
谢谢-戴夫
解决方法
使用org.hibernate.criterion.Example获得您正在描述的行为:
List results = session.createCriteria(MyObj.class)
.add( Example.create(inputObj) )
.list();
参考文档的15.4节对此进行了描述。