`
java苹果+番茄
  • 浏览: 65835 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

org.hibernate.criterion.Example(用法解释)

阅读更多
org.hibernate.criterion.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();


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();
分享到:
评论
3 楼 skcmm 2011-03-18  
这种用法倒是第一次看到,一般都是用的hql和sql query 接口
2 楼 sswh 2011-03-18  
java苹果+番茄 写道

Example example = Example.create(cat)
  .excludeZeroes()       //排除值为0的属性
  .excludeProperty("color") //排除 color属性
  .ignoreCase()         //忽略大小写
  .enableLike();         //启用模糊查询


使用起来太麻烦了,尤其是针对java原始值,
数值的话,还可以每次都排除0值属性,但对于boolean值,
究竟要不要排除,要根据实际情况,这样导致操作起来太麻烦了。

没法写一个统一的API,比如findByExample(Object bo);


1 楼 cesymm 2011-03-18  
通用性不强,一般组HQL语句

相关推荐

Global site tag (gtag.js) - Google Analytics