论坛首页 Java企业应用论坛

“write less,do more” Hibernate下的JQuery --->HQuery

浏览 19604 次
该帖已经被评为良好帖
作者 正文
   发表时间:2009-04-02  
yuxiangel007 写道
学习一下 ^0^

共同学习,可以给一点建议什么的,帮助我改进。
0 请登录后投票
   发表时间:2009-04-02  
starfeng 写道
看了一下.可是感觉就像是把除了把Hibernate Critia的所有方法加了个$的前缀外, 然后把引用变成继承外, 没任何不同啊? 是不是我理解错了...

比方:
$eq("useYn","Y") ==> Restrictions.eq("useYn","Y")

继承虽然省去了一个Class名的引用(或对象的引用),比方"Restrictions.", 看起来少写了一点代码,但他带来的高耦合是得不偿失的.

没错,我是把构造Criterion的各种方法都以$来代替再加上逻辑代号
$eq("useYn","Y") ==> Restrictions.eq("useYn","Y")

你说的完全正确 可光这样还不行啊,这样只构造了Criterion,$eq("useYn","Y")他的操作是构造了Selector
Selector里包含了Criterion来进行求值,前面我也说了 HQuery的实现99%基于Criteria
它只希望以JQuery形式的写法和特性来完成一些比较常见的操作,
再一个公司里随时会有新人报道,或者项目里随时会有人员变动,不保证所以人都会Hibernate 或者会Criterion
我封装了Criterion的目的也是希望他们不需要再去看Hibernate的相关文档,看下团队开发指南等就能快速上手,
而且出了问题也不需要他们去考虑如何解决,HQuery提供了自己的异常机制 能清楚的定位是什么地方出的问题。
thanks.
0 请登录后投票
   发表时间:2009-04-02  
黑暗浪子 写道
问一下,事务是怎么控制的?还有连接池,二级缓存这些还是和原来一样?
我只大致看了一下你的文章,问的问题也许初级,请见谅~
盼望你的回复,谢谢。

事务采用annotation 在方法上进行声明
@Transactional(type = TransactionType.READ_WRITE)
public void xxx(){
  $().save();
}

类似上面这样的
连接池这个可以自行更换,HQuery如果需要集成到您的项目中 只需要继承HQuery 实现他的抽象方法getSession();
HQuery内部会进行调用,
至于Session的管理方法是由您的项目去定制的,我只关心给我的Session是可用的就OK
缓存这些同理。
它的定位只是一个帮助快速操作HibernateAPI 并且封装一些常用写法 帮助大家而已。
0 请登录后投票
   发表时间:2009-04-02  
把我的框架整合到你那里如何?我的框架只处理HQL语句,和你的功能互补。
0 请登录后投票
   发表时间:2009-04-02  
已经将HQuery beta版上传,尝新的朋友可下载使用 欢迎提出各种问题,一起完善。
0 请登录后投票
   发表时间:2009-04-02  
厉害,这样也行,等你发布了好好试试。还有楼主基本每贴都回复了,有耐心
0 请登录后投票
   发表时间:2009-04-02  
魔力猫咪 写道
把我的框架整合到你那里如何?我的框架只处理HQL语句,和你的功能互补。

是个想法,我的guiceSide有点大,什么破东西都有 总之就是基于google-guice
抛弃了spring 自己实现了webwork的一些亮点的一个乱七八糟的东西,谢谢你看得上。
0 请登录后投票
   发表时间:2009-04-02  
flyfan 写道
厉害,这样也行,等你发布了好好试试。还有楼主基本每贴都回复了,有耐心

只有交流 才能做出比较完善的东西

在实际开发中不是也一样嘛。

已经上传beta版 有点简陋 但是包括全部功能

等明天弄API给大家看看。
PS:我还不知道那JAR 包能不能跑呢 呵呵。 
0 请登录后投票
   发表时间:2009-04-03   最后修改:2009-04-03
QBC 一对多时,多方为EAGER加载,查询一方会有自动全连接的问题 不知道楼主是怎么解决这个问题的?
0 请登录后投票
   发表时间:2009-04-03   最后修改:2009-04-03
还是挺有想法的,不过好像除了少敲了几个字母以外,好像看不出什么原创性的东西。不知道能否加上一些动态查询的封装,比如对参数进行判断,当参数为null时,不用在外面再包一层来判断。

不过再怎么说,也比拼SQL的工具来得有想法。
0 请登录后投票
论坛首页 Java企业应用版

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