当前位置:  开发笔记 > 编程语言 > 正文

陷阱和实际用例:Toplink,Hibernate,Eclipse Link,Ibatis

如何解决《陷阱和实际用例:Toplink,Hibernate,EclipseLink,Ibatis》经验,为你挑选了1个好方法。

我使用Hibernate作为我的JPA实现工作了很多.在大多数情况下,它工作正常!但我也看到了很多陷阱:

使用持久化对象进行远程处理很困难,因为Hibernate用自己的集合实现替换了Java集合.所以每个客户端都必须有Hibernate .jar库.你必须注意LazyLoading异常等.解决这个问题的一种方法是使用webservices.

对数据库进行脏检查而没有任何锁定.

"延迟SQL"导致数据访问不符合ACID.(丢失数据......)

隐含更新>>因此我们不知道对象是否被修改(提交导致更新).

Toplink,Eclipse Link和Ibatis是否存在类似问题?我应该什么时候使用它们?他们有类似的表现吗?是否有理由选择Eclipse Link/Toplink ...而不是Hibernate?



1> Miguel Ping..:

我可以分享我相当多的Hibernate陷阱:

Criteria API不是类型安全的

Criteria API设计相对较差(例如:您无法检索当前别名)

如果您创建别名,则表示您正在强制进行内部联接(这是在文档中,但会产生误导)

不支持UNION

没有简单的方法来" 解除代理 "持久对象(第三方支持远程处理)

不支持没有PK的表(我现在它很笨,但它发生在遗留模式中)

没有简单的方法来使用非PK列的序列(不是那么愚蠢)

至于大多数JPA实现,我总是发现我必须依赖一些自定义注释,或者做一些JPA规范中没有涉及的东西.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有