快速业务通道

Java开发2.0: 使用Hibernate Shards进行切分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
间:2010-10-26 IBM Andrew Glover

Spring 配置

在 清单 3 中,对 hibernateConfigurations 的引用指向了 Strings List,其中每个 String 都包含了 Hibernate 配置文件的名字。该 List 通过 Spring 自动连接。清单 4 是我的 Spring 配置文件中的一段摘录:

清单 4. Spring 配置文件中的一部分

<bean id="shardedSessionFactoryBuilder"  class="org.disco.racer.shardsupport.ShardedSessionFactoryBuilder">   <property name="resourceConfigurations">     <list>       <value>racer.hbm.xml</value>     </list>   </property>   <property name="hibernateConfigurations">     <list>       <value>shard0.hibernate.cfg.xml</value>       <value>shard1.hibernate.cfg.xml</value>     </list>   </property> </bean>

如您在 清单 4 中所看到的,ShardedSessionFactoryBuilder 正在与一个 POJO 映射文件和两个切分配置文件连接。清单 5 中是 POJO 文件的一段摘录:

清单 5. 比赛 POJO 映射

<class name="org.disco.racer.domain.Race" table="race"dynamic-update="true"   dynamic-insert="true">  <id name="id" column="RACE_ID" unsaved-value="-1">  <generator class="org.hibernate.shards.id.ShardedUUIDGenerator"/>  </id>  <set name="participants" cascade="save-update" inverse="false" table="race_participants"   lazy="false">  <key column="race_id"/>  <many-to-many column="runner_id" class="org.disco.racer.domain.Runner"/>  </set>  <set name="results" inverse="true" table="race_results" lazy="false">  <key column="race_id"/>  <one-to-many class="org.disco.racer.domain.Result"/>  </set>  <property name="name" column="NAME" type="string"/>  <property name="distance" column="DISTANCE" type="double"/>  <property name="date" column="DATE" type="date"/>  <property name="description" column="DESCRIPTION" type="string"/> </class>

请注意,清单 5 中的 POJO 映射的唯一独特方面是 ID 的生成器类 — 这就是 ShardedUUIDGenerator,它(如您想象的一样)将切分 ID 信息嵌入到 UUID 中。这就是我的 POJO 映射中切分的唯一独特方面。

切分配置文件

下一步,如清单 6 中所示,我已经配置了一个切分 — 在本示例中,除切分 ID 和连接信息外,切分 0 和切分 1 的文件是一样的。

清单 6. Hibernate Shards 配置文件

<?xml version=''1.0'' encoding=''utf-8''?> <!DOCTYPE hibernate-configuration PUBLIC      "-//Hibernate/Hibernate Configuration DTD//EN"     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configurati

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号