这段意思是:如果业务逻辑写在存储过程中,Hibernate不适用。
如果是面向对象的领域模型,并且业务逻辑写在中间层,适合使用Hibernate。
他们没有意识到,将业务逻辑从领域模型中分离出,写在中间层,这个领域模型其实是个贫血模型,也就是说,Hibernate适合贫血模型,而不是真正面向对象的领域模型。
真正的对象是什么?不只是有对象的属性,还有对象的行为(这个行为不是属性的setter/getter),这才是完整对象。
当Java 8的lambda来了以后,是否需要这些ORM框架还是个问题,如下是获得一个符合条件的查询:
long result = stream(connection, "select TEST_ID from TEST_TABLE")
.filter((t) -> t.asInt("TEST_ID") % 2 == 0)
.limit(100)
.count();
<p>
|
如果把SQL看成类似微软的LinQ,那么结合函数风格,一个符合DDD的criteria可以直接书写,无需什么持久层框架了。
http://www.jdon.com/idea/java/java-8-lambda-jdbc.html
以上个人观点。
[该贴被banq于2013-12-06 11:39修改过]
[该贴被banq于2013-12-06 11:40修改过]