hibernate映射视图的两种方式

本文详细介绍了在Hibernate中映射数据库视图的两种方法。第一种是在数据库已存在视图的情况下,直接将视图作为普通表进行映射;第二种是在数据库无视图时,利用Hibernate自身特性创建视图映射。文章还提供了具体的hbm.xml配置示例,展示了如何通过synchronize属性使视图数据随表数据变化而更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

本文出自 http://huntersxp.javaeye.com/blog/230719

hibernate映射视图的两种方式

1.数据库已经建立视图,hibernate只是把视图当作普通的表来映射。
视图VIEW_MER_INST_POS:
select MER.DAYS_MERCHT_ID MER_ID,
       INST.DAYS_MERCHT_ID INST_ID,
       POS.POS_ID POS_ID
from tbl_days_mercht_attr MER,
     tbl_days_mercht_info INST,
     tbl_days_mercht_pos_info POS
where MER.days_mercht_id = INST.up_days_mercht_id
  and INST.days_mercht_id = POS.days_mercht_id

hbm.xml配置
<class
    name="db.po.ViewMerInstPos"
    table="VIEW_MER_INST_POS"
>

    <composite-id>
            <key-property
            name="merId"
            column="MER_ID"
            type="java.lang.String"
            length="8"
        />
        <key-property
            name="instId"
            column="INST_ID"
            type="java.lang.String"
            length="8"
        />
        <key-property
            name="posId"
            column="POS_ID"
            type="java.lang.String"
            length="8"
        />
  </class>
</ hibernate -mapping>

2.数据库没有视图,用hibernate自己做视图映射
hbm配置如下:
< hibernate -mapping package="huntersxp.db.pojo">
<class name="ViewMerInstPos">
<meta attribute="sync-DAO">false</meta>
<subselect>
select
MER.DAYS_MERCHT_ID MER_ID,INST.SHOP_NM SHOP_NM,POS.POS_ID POS_ID
from tbl_days_mercht_attr MER,
tbl_days_mercht_info INST,
tbl_days_mercht_pos_info POS
where MER.days_mercht_id = INST.up_days_mercht_id and INST.days_mercht_id = POS.days_mercht_id
</subselect>
<synchronize table="tbl_days_mercht_attr"/>
<synchronize table="tbl_days_mercht_info"/>
<synchronize table="tbl_days_mercht_pos_info"/>
<composite-id>
        <key-property
            name="merId"
            column="MER_ID"
            type="java.lang.String"
            length="8"
        />
        <key-property
            name="shopNm"
            column="SHOP_NM"
            type="java.lang.String"
            length="40"
        />
        <key-property
            name="posId"
            column="POS_ID"
            type="java.lang.String"
            length="40"
        />
</composite-id>
</class>
</ hibernate -mapping>
其中synchronize表示当表的数据发生变化的时候,视图的数据也会发生变化。 
           

给我老师的人工智能教程打call!http://blog.youkuaiyun.com/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值