hibernate中将视图进行映射

本文介绍了如何在MySQL中创建包含美容院和美容店信息的视图,并通过Hibernate进行映射,实现Java实体类与数据库视图之间的交互。此外,还提供了一个用于查询的数据服务接口实现。

1、在mysql中创建视图

CREATE  VIEW `t_beauty_parlor_view` AS (
select `p`.`id` AS `id`,`p`.`name` AS `name`,`p`.`address` AS `address`,`p`.`tel` AS `tel`,`p`.`create_time` AS `create_time`,NULL AS `pid` from `t_beauty_parlor` `p` where (`p`.`del` = 0)
) 
union 
(select `s`.`id` AS `id`,`s`.`name` AS `name`,`s`.`address` AS `address`,`s`.`tel` AS `tel`,`s`.`create_time` AS `create_time`,`s`.`parlor_id` AS `pid` 
from `t_beauty_shop` `s` where (`s`.`del` = 0)
)

2、BeautyParlorView.java如下

@SuppressWarnings("serial")
public class BeautyParlorView implements java.io.Serializable {

    private String id;

    //名称
    private String name;

    //电话
    private String tel;

    //地址
    private String address;

    private String pid;

    private Date createTime;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

}

3、BeautyParlorView.hbm.xml如下:

<hibernate-mapping>
    <class name="com.weiran.model.BeautyParlorView" table="t_beauty_parlor_view"   >
        <id name="id" type="java.lang.String">
            <column name="ID" length="50" />
            <generator class="uuid.hex" /> 
        </id> 

        <property name="name" type="java.lang.String">
            <column name="name" length="60" />
        </property>

        <property name="tel" type="java.lang.String">
            <column name="tel" length="20" />
        </property>

        <property name="address" type="java.lang.String">
            <column name="address" length="100" />
        </property>

        <property name="pid" type="java.lang.String">
            <column name="pid" length="50" />
        </property>

        <property name="createTime" type="java.util.Date">
            <column name="create_time" length="23" />
        </property>

    </class>
</hibernate-mapping>

4、BeautyParlorViewServiceImpl.java如下

@Service
public class BeautyParlorViewServiceImpl extends BaseServiceImpl<String, BeautyParlorView> implements BeautyParlorViewServiceIntf {

    @Override
    public List<BeautyParlorView> queryBeautyParlorTree(String name) throws Exception {
        StringBuffer sb = new StringBuffer(" from BeautyParlorView t where 1 = 1 ");
        if(StringUtil.notNull(name)){
            sb.append(" and t.name like '%"+name+"%' ");
        }
        sb.append(" order by t.createTime desc ");

        List<BeautyParlorView> result =  baseDao.query(sb.toString());
        return result;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值