我在JPA实现中大量使用了Hibernate。在大多数情况下它都能正常工作!但我也看到了很多陷阱:
- 使用持久化对象进行远程访问很困难,因为Hibernate会用自己的集合实现替换Java集合。所以每个客户端都必须有Hibernate .jar库。您必须注意LazyLoading异常等问题。解决此问题的一种方法是使用Web服务。
- 脏检查是针对数据库而不是锁定完成的。
- "延迟SQL"导致数据访问不符合ACID标准。(丢失数据...)
- 隐式更新 >> 因此我们不知道对象是否已被修改(提交会导致更新)。
Toplink、Eclipse Link和Ibatis是否存在类似的问题?何时应该使用它们?它们的性能是否相似?选择Eclipse Link/Toplink...而不是Hibernate是否有理由?