发布于 2010-11-06 21:10:59
一般来说,一个好的ORM解决方案应该易于使用和理解。它应该促进良好设计模式的使用(DAOs、DTO、延迟加载、服务、事务边界、配置的易用性等)。它应该是非侵入性的-也就是说,它不应该强迫您扩展特殊的类或实现特殊的接口。
EJB规范在早期出现了很多变化,导致大量迁移到Spring和Hibernate这样的领域。EJB1未能充分定义bean上的CMP字段,EJB2暗示它们应该是抽象访问器,而不是实际字段,这很奇怪,直到EJB3才创建了与每个人真正想要的接近的东西。那时已经太晚了,大家都认为EJB糟糕透了,需要JPA和JTA才能把事情再一次纠正过来。
EJB1和2通常迫使开发人员将它们的所有持久性配置放在一堆XML文件中,远离使用它的实际代码。这会导致很多混乱和错误代码。其他ORM框架也从中吸取了教训,并决定使用注释代替。对他们来说是个大赢家。
EJB1和2对不同类型的关系以及如何在底层关系数据库中实现它们的支持非常有限。必须遵守各种特殊的接口,所产生的代码很难理解。
总之,所有这些都已经过去了,我们可以期待着与Hibernate一样实现JPA和JTA的美好未来。都很和谐。
https://softwareengineering.stackexchange.com/questions/8789
复制相似问题