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