菜鸟在Hibernate的路上前行–使用多对一关联映射

使用多对一关联映射

1.1 问题

使用多对一关联映射,在查询业务账号时,自动查询出它对应的账务账号。

1.2 方案

多对一关联映射开发步骤:
1. 业务账号与账务账号具有多对一关系,他们的关系字段是service.account_id。
2. 在业务账号中追加Account类型的属性,用于封装它对应的唯一账务账号。
3. 在业务账号映射关系文件中配置此属性。

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:在业务账号实体类中追加属性

在业务账号实体类Service中,追加Account类型的属性,用于封装它对应的唯一账务账号。由于这个属性包含了账务账号的ID,因此accountId属性可以去掉了,实际上这个属性必须去掉,否则会报错。代码如下:

去掉accountId属性以及get,set方法:

 

追加属性,用于封装对应的Account记录:

 

详细代码如下:

 

步骤二:在业务账号映射关系文件中配置这个属性

在业务账号映射关系文件service.hbm.xml中,配置这个关联属性,代码如下:

去掉原来的关系:

添加映射关系:

详细的代码如下:

 

步骤三:创建测试类

在com.souvc.test包下,创建一个测试类TestManyToOne,并且增加一个测试方法。在方法中查询出一条业务账号数据,然后输出这个业务账号的一些属性,同时输出account属性的值。代码如下:

 

步骤四:测试

执行这个测试方法,控制台输出结果如下图,可以看出在查询SERVICE的同时,Hibernate自动查询出了它对应的ACCOUNT数据,并且这个关联查询是采用延迟加载机制实现的。

 

 

 

 

 






如果您认为本教程质量不错,读后觉得收获很大,预期工资能蹭蹭蹭的往上涨,那么不妨小额赞助我一下,让我有动力继续写出高质量的教程。

发布者

souvc

souvc

搜你所想,投你所好。

发表评论