Hibernate3.1 的一个Event机制问题

系统使用Hibernate, 感觉还可以. 从其强大的功能中获利不少. 于是hibernate 3.1出来后, 就升级到了这个版本. 但是新版本的一个Event机制, 却透露出其设计的一个大毛病.

在hibernate 3.1中, 所有的操作都是由Event来驱动的. 于是就存在了各种各样的EventListener. 按照设计原理, 既然是EventListener, 而且可配置, 那么就可以去掉默认的实现, 不配置任何的Listener, 还是可以运行的. 但是Hibernate没有做到这点. 例如其DefaultLoadEventListener就实现了其特别的逻辑. 如果没有该Listener, Hibernate是无法load数据的.

这基本违背了最简单的设计原则. 我希望是我还没有完全理解hibernate, 可能有其他可配置的选择.

还有一个问题, 也是比较令人难受的. 那就是在默认的Listener的实现中记录日志. 比如DefaultLoadEventListener 的onLoad方法, 如果没有数据存在就忘日志里写了如下的信息.

catch(HibernateException e) {
   log.info("Error performing load command", e);
   throw e;
  }

这就强制用户接收这些日志信息了. 很多时候, 我们使用该方法来验证数据是否存在, 结果会看到一大串的异常信息, 很不舒服.

从这两点看来, 其设计的思想还是没有从用户的角度来考虑呀.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值