Daniel Spiewak 做出了回应 关于 代码比XML多?
首先,恭喜丹尼尔直接承认自己“没有多少Hibernate经验”,并且说
我在比较ActiveObjects和ActiveRecord时,是将其与没有注解的Hibernate进行比较。毕竟,这是默认下载的内容,对吧?
(嗯,我想默认下载的内容是你决定默认下载的内容...?)
最后
好吧,那段小评论确实应该道歉;或者更准确地说,应该澄清。我无意说AO在所有情况下都固有地比Hibernate快。事实上,我想我已经说过几次,AO固有地比Hibernate 性能差,这是设计上的。
然而,丹尼尔再次抱怨Hibernate配置困难
我始终无法真正理解配置以使其运行。
好吧,丹尼尔,让我帮你开始这个过程。如果你已经配置了JCA数据源,以下通常是你在应用服务器内部使用Hibernate所需的所有额外配置
<persistence> <persistence-unit name="bookingDatabase"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/MyDatasource</jta-data-source> <properties> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> </properties> </persistence-unit> </persistence>
如果你不在应用服务器环境中,以下应该足够你开始
<persistence> <persistence-unit name="bookingDatabase"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <properties> <property name="hibernate.jdbc.url" value="jdbc:hsqldb:."/> <property name="hibernate.jdbc.driver_class" value="org.hsqldb.jdbcDriver"/> <property name="hibernate.jdbc.username" value="sa"/> </properties> </persistence-unit> </persistence>
希望这能帮到你。
最后,丹尼尔指出我之前帖子中的一个错误。事实证明,ActiveObjects确实有一种方法可以向你的领域模型添加业务逻辑。你所需要做的就是编写一个额外的类(不实现AO接口),包含你想要定制的方法和访问器。
OMG,OMG,OMG!我太兴奋了:/EJB 2编程模型又回来了!实体Bean重生了!/
不幸的是,在非平凡的情况下,AO通常需要比Hibernate更多的代码,因为你需要为每个领域模型类编写两个工件,而不是一个。