恐怕你可能误解了概念。你基本上不会寻找替代Hibernate,而是ORM的替代方案。
Hibernate是正确的ORM的极少数尝试之一。 Hibernate试图解决对象/关系不匹配范例的大部分。这些都是:
- 粒度的问题
- 亚型的问题
- 问题身份
- 与关联数据的导航
- 问题的问题
更多信息请参见Java Persistence with Hibernate。
总之,没有轻量级的ORM。有适当的ORM解决方案或其他解决方案 - 比如myBatis,其中不是将关系模型映射到对象模型,而是将SQL语句映射到对象和方法。
别忘了 - 你不必使用所有的Hibernate功能。您可以非常舒适地将其与自定义SQL,普通JDBC混合并仅使用其功能的子集。
EDIT1:关于启动慢的
间奏曲:我目前正在与一个propietary ORM解决方案的工作(而不是聪明的Hibernate韧)whitch是专门为我们的应用程序进行调整。最大的问题也是启动,这是因为将整个数据库映射到对象并不是微不足道的。
现在,至于Hibernate。也许你知道,Hibernate在启动时也会生成CRUD SQL语句。如果你有大数据库,这可能会影响性能。但是,您可以关闭此启动SQL生成并将 切换为在运行时生成的动态语句。
使用XML标记,可以实现这样的:
<class name="SomeClass"
dynamic-insert="true"
dynamic-update="true">
...
</class>
或者使用Hibernate注释:
@Entity
@org.hibernate.annotations.Entity(
dynamicInsert = true, dynamicUpdate = true
)
public class SomeClass { ...
EDIT2:关于混合自定义SQL
的参考书籍的Java Hibernate的持久化解释事物的深度。第8章介绍如何使用遗留数据库,并提供如何更改DML(如使用自定义SQL,甚至可以用自定义SQL替换CRUD代码!)和DDL(通用运行时DDL操作)。你应该偷看:)
相关吨o问题:http:// stackoverflow。com/questions/5489799 /快速简单的学习和pojo友好orm为java,http://stackoverflow.com/questions/3491540/java-orm-for-a-read-only- DB和http://stackoverflow.com/questions/450864/lightweight-java-persistence – Gray
最密切相关的http://stackoverflow.com/questions/296587/light-weight-alternative-to-hibernate – Gray
日Thnx,我我已经读完了所有内容,但并没有记住我的想法,但到目前为止,我发现ibatis – MoienGK