丹尼尔回应

发布者    |      

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更多的代码,因为你需要为每个领域模型类编写两个工件,而不是一个。


返回顶部