Cat cat = new Cat(); cat.setSex('F'); cat.setColor(Color.BLACK);
List results = session.createCriteria(Cat.class) .add( Example.create(cat) )
.list(); 版本属性、标识符和关联被忽略。默认情况下值为null的属性将被排除。 你可以自行调整 Exampleexample = 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(); |
查询示例
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 ( ) ;
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 ( ) ;
.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 ( ) ;
. add ( Example . create (cat ) )
.createCriteria ( "mate" )
. add ( Example . create ( cat .getMate ( ) ) )
. list ( ) ;