Hibernate3中的formula是否是在支持rich domain object

今天看了一下hibernate的 formula,第一感觉是特别方便,给编程节省了很多代码,再仔细一想 这不是在domain object中包含了dao操作了吗?
也就是说通过dao方法查询出来的对象又包含了dao操作这个问题以前曾经思考过 它到底和不合理呢?这种方式的出现是必然还是偶然?我们来分析一下
User user = userDao.findUser(userid);
List list = user.getRoles();

上面这几行代码没有问题 我们在开下面的代码
User user = userDao.findUser(userid);
User user2 = user.findByName(username);

这两组代码之间的区别在那儿呢?
第一组代码是返回的不是User对象或者User数组
而第二组代码返回的仍然是User对象或者User数组
如果上面两组的代码调用到此结束,那是没有问题的 不会造成循环调用
但是如果继续调用呢? 也没有问题 由此可以推出dao和domain可以设计成一个类就是所谓的rich domain object,那么为什么实际上这样用的人特别少呢?

你可能感兴趣的:(DAO,编程,Hibernate)