王朝网络
分享
 
 
 

Hibernate O/R映射三大基本定则

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

转贴自/:http://www.yourblog.org/Data/20044/34092.Html

发表:2004-4-2 10:40:43 出处:你的博客网(yourblog.org)

1. 引言

在Java环境下,有多种对象关系映射方法,如实体Bean、OJB、JDO、JDBC等。Hibernate是一种新的O/R映射工具,它不仅提供了从Java类到数据表的映射,也提供了数据查询和恢复等机制。Hibernate非常简单易学,目前国内有很多同行已经或正在用Hibernate开发实施项目;但Hibernate有很多规则不为人知或应用甚少。本文的目的就是将这些规则归纳总结,希望对您的开发和设计有益。

首先声明,本文是Hibernate入门级文章,高手请不用往下看了。

2. 基本定则

定则一:数据库配置文件名称可以不是Hibernate.properties或Hibernate.cfg.XML

由于Hibernate官方文档(本文www.hibernate.org的文档)的影响,很多Hibernate开发者误以为系统一定要有名称为Hibernate.properties或Hibernate.cfg.xml的文件,而且一定要放在classes的根目录下。实际上,该文件只是一般的配置文件,名称可以自己取,文件位置可以自己定,而且在多数据库环境下,可以有多个配置文件,使得程序可以连接多个数据库。只是您在创建会话工厂时需要非凡处理,代码示例如下:

//配置文件名称

protected static String CONFIG_FILE = "my_hibernate.config";

//配置文件目录,可以考虑在该目录下存放系统所有配置文件,此处使用虚拟机参数

String configPath = System.getProperty("my.config");

//创建会话工厂

sessionFactory =( new Configuration().configure(new File(configPath+File.separator+CONFIG_FILE))) .buildSessionFactory();

定则二:小型项目中,.hbm.xml文件可以合并到一个文件中

同样由于Hibernate官方文档的影响,很多Hibernate开发者误以为Hibernate的对象关系映射一定要一个表对应一个对象,并将映射文件和对象文件放在同一目录下。实际上,该模式是为规范性考虑而设计的,因为在多人参与的项目中,多人要维护同一文件轻易产生冲突;当项目比较小时,配置文件的维护人员少,我们完全可以将.hbm.xml文件合并到一个或者几个文件中。依据作者本人的项目设计开发经验,最好是项目中有几人同时从事O/R映射和持久工作,则设定几个.hbm.xml文件,每人维护一个。当然,为了便于分类和治理,每人的工作应该按逻辑划分。

大型项目中的文件配置示例如下:

<hibernate-configuration>

<session-factory>

<!—映射文件分散 -->

<mapping resource="com/hongsoft/test/ persistence/Cat.hbm.xml"/>

<mapping resource="com/hongsoft/test/ persistence/Animal.hbm.xml"/>

</session-factory>

</hibernate-configuration>

小型项目中的文件配置示例如下:

<hibernate-configuration>

<session-factory>

<!—映射文件集中 -->

<mapping resource="res_hibernate_map.xml"/>

</session-factory>

</hibernate-configuration>

要注重的是, 从对Hibernate源代码的分析可知,指定映射文件时,不能用绝对目录,只能用相对目录;而且,系统以classes根目录为当前目录。

定则三:对象关系映射是以.hbm.xml文件为基准的,而不是以PO文件为基准

该定律的意思是:系统启动检查您的对象关系映射是否正确时,是以.hbm.xml为基准来进行检查的;对象文件的property可以比映射文件的property多,但不能少。假如您有如下的映射:

<class name="com.hongsoft.test.User" table="res_user">

<id name="id" column="id" type="long" unsaved-value="any">

<generator class="assigned">

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有