上次我听到很多关于Hibernate的抱怨。事实上,我在使用Hibernate时也有过一些痛苦的经历。所以我读了一些关于Ebean和Siena的文章。
这两种方法都很有趣。不幸的是,数据库访问层很容易写,但是如果你的项目增长了,你必须处理大量的数据库表,你就知道它们好不好。因此,评估这样的工具真的很困难。Hibernate是众所周知的,你可以确信你可以用它来解决你的问题。有时候你需要学习很多东西,但你可以解决它。
Ebean是怎么回事?在现实世界中有什么应用程序吗?支持哪些数据库?它可靠吗?
经过更多的搜索,我发现有更多的ORM框架,那么至少有一个可靠的框架吗?
发布于 2011-03-07 06:22:29
Rob (Ebean委员会)在这里。
Ebean现在大约有4+岁了。我想说它现在已经相当成熟了。支持的数据库包括Oracle、MySql、Postgres、H2和SQL Server (最近还有SQLite)。Ebean做的是其他ORM做不到的事情,比如Autofetch (自动查询调优),所以我不知道它是如何适合‘成熟度评级’的。不过,由于Ebean社区相对较小,因此您可能需要访问Ebean google组才能与他们互动。
有什么实际的应用程序吗?是的,但是你最好去问问Ebean社区。当然,还有对批处理的良好支持(批处理大小、事务的级联持久化等)和我在JPA等中看不到的大型查询支持(您可能会得到与Hibernate的Sessionless支持类似的支持)。
希望这能回答你问题的一小部分。
干杯,罗伯。
发布于 2011-02-05 07:55:29
我目前是锡耶纳的一名开发人员,但不久之后。让我解释一下为什么我会成为这个项目的开发人员?我去了锡耶纳,因为我想使用Play+GAE,而锡耶纳似乎是GAE DB的一个良好开端,我真的很想避免使用JDO/JPA。然后,我开始真正欣赏锡耶纳的简单、轻便的方法和如此简单的API。它并不是像JDO那样的一体化抽象层,也不像JPA那样是最好的标准DB API。这真的让我想到了Python/Ruby的DB,它真的很符合我的观点:我想要一个简单的DB,它可以让我解决绝大多数问题,当我有一个更复杂的问题时,我会使用较低层的API,但肯定不是像hibernate这样的抽象层。
使我的代码在GAE DB或JDBC上工作的可能性也是一个很好的方面。再说一次,锡耶纳并没有假装在两个世界中提供完全相同的东西,因为SQL和NoSQL并不是真正兼容(但ORM也不是真正符合SQL model :)。但同样,能够在多个DB中依赖相同的API也是非常实用的。
最后,该库是一个jar,您不必检索整个世界才能使用它。
因此,我逐渐成为锡耶纳的一名提交者,因为我想参与这场小小的冒险。现在,锡耶纳团队正在开发一个新版本,保留了相同的简单API,带来了新的有趣功能,并真正改进了所有后端代码,使其更容易扩展到新的数据库支持。Siena是一个由用户体验驱动的实用API,这就是我喜欢它的原因;)
Pascal
发布于 2010-12-04 15:31:49
我们对MyBatis有很好的体验,它本身不是一个对象关系映射,而是另一类持久性管理器,SQL Mapper。使用它,您可以从SQL语句开始,并指导它如何将结果行映射到POJO。它在概念上很容易理解和调优,内部没有太多的魔法。如果您熟悉SQL或需要使用已建立的模式,那么它是理想的选择。
https://stackoverflow.com/questions/4349341
复制相似问题