论坛首页 Java企业应用论坛

基于hibernate的开源通用查询框架 -- bba96介绍

浏览 37770 次
该帖已经被评为精华帖
作者 正文
   发表时间:2007-07-25  
这样,也许更通用一些
public class CommonQuery{
   public Object getById(Long id);
   public List getList(String condition);
   public Page getPage(String condition,int pageIndex,int pageSize);
}

...
0 请登录后投票
   发表时间:2007-07-26  
一个问题: 能不能解决openseesioninview问题
0 请登录后投票
   发表时间:2007-07-26  
出门请戴口罩 写道
这样,也许更通用一些
public class CommonQuery{
   public Object getById(Long id);
   public List getList(String condition);
   public Page getPage(String condition,int pageIndex,int pageSize);
}

...


基本上condition用string来表示是不够的
1. 没有类型信息
2. 难以拆分与组装条件/orderby/groupby/聚集函数等,跟hql/sql区别不大

bba96内部有自定义的query对象,解决了以上的问题,至于pageIndex还是startIndex无关紧要,都可以支持
0 请登录后投票
   发表时间:2007-07-26  
Chamjoneu 写道
一个问题: 能不能解决openseesioninview问题

OSIV的什么问题?
bba96只是对Criteria的封装,不是要解决什么具体OSIV的问题,不过倒是可以很方便的解决一些由于LAZY引起的n+1的query问题,也就是即使设定了LAZY,用的时候也很方便关闭LAZY,转用fetch方式。

如: student.exercises是one-to-many,一个页面要同时显示student及所属exercise时,非LAZY就就是1条sql,而LAZY时有n个student就有1+n条sql发出,但是在别的地方确实需要LAZY,那么用bba96只要在原来的query部分加一个Fetch条件即可实现非LAZY的效果
0 请登录后投票
   发表时间:2007-07-27  
在java.net上,很早就注意这个项目了
包括了webwork的集成
0 请登录后投票
   发表时间:2007-07-31  
学习一下,感觉不是很好使用,
0 请登录后投票
   发表时间:2007-08-01  
链接无效
0 请登录后投票
   发表时间:2007-08-01  
源码已上传至
http://bba96.group.iteye.com/group/share
0 请登录后投票
   发表时间:2007-08-02  
不知道对于没有显示定义的级联查询怎么处理的?
比如一个用户有一个部门属性,当然部门里面是另外一个表里面的,如果这两个表有外键关联倒是没有什么关系了,但是现在很多人设计DB的时候不喜欢去(显示的)定义这个外键(虽然一般会有文档说明,但是在DB这个外键是不存在的)

不好意思:还没有来得及仔细的看
0 请登录后投票
   发表时间:2007-08-02  
minimu 写道
不知道对于没有显示定义的级联查询怎么处理的?
比如一个用户有一个部门属性,当然部门里面是另外一个表里面的,如果这两个表有外键关联倒是没有什么关系了,但是现在很多人设计DB的时候不喜欢去(显示的)定义这个外键(虽然一般会有文档说明,但是在DB这个外键是不存在的)

不好意思:还没有来得及仔细的看


即使DB不定义外键,hibernate也可以关联映射,那就没问题,但如果没有定义hibernate关联,这个情况hibernate也只能对用户的部门属性做直接查询,没法做部门其他属性做关联查询,bba96基于hibernate,自然也处理不好

0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics