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(); 

版本属性、标识符和关联被忽略。默认情况下值为null的属性将被排除。

你可以自行调整Example使之更实用。

 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 ( ) ;



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 ( ) ;

猜你喜欢

转载自langgufu.iteye.com/blog/1915020
今日推荐