Hibernate实体映射模板

Hibernate实体映射模板

1,写注释
     •格式为:?属性,表达的是本对象与?的?关系。
     •例:“department属性,本对象与Department的多对一”
2,拷模板:

多对一

<many-to-one name=“” class=“” column=“”/>

一对多

Set

<set name="">

        <key column=""></key>

        <one-to-many class=""/>

</set>

多对多

Set

<set name="" table="">

        <key column=""></key>

        <many-to-many class="" column=""/>

</set>



3,填空:
      •name属性:属性名(注释中的第1问号)
      •class属性:关联的实体类型(注释中的第2个问号)
      •column属性:
       •<many-to-onecolumn="..">:一般可以写成属性名加Id后缀,如属性为department,则column值写成          departmentId。
      •一对多中的<keycolumn="..">:从关联的对方(对方是多对一)映射中把column值拷贝过来。
      •多对多中的<keycolumn=“..”>:一般可以写成本对象的名加Id后缀,如本对象名为User,则写为userId。
     •多对多中的<many-to-manycolumn=“..”>:一般可以写为关联对象的名称加Id后缀。

示例User、Role、Privilege之间的映射关系:

User.hbm.xml中

<class name="User" table="usst_user">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="loginName" column="loginName"></property>
        。。。。
        <!-- roles属性,表示我与Role的多对多关系 -->
        <set name="roles" table="usst_user_role" lazy="false">
            <key column="userId"></key>
            <many-to-many class="Role" column="roleId"></many-to-many>

        </set>

</class>


Role.hbm.xml中
    <class name="Role" table="usst_role">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="name" column="name"></property>

        <!-- users属性,表达了我与User的多对多关系 -->
        <set name="users" table="usst_user_role">
            <key column="roleId"></key>
            <many-to-many class="User" column="userId"></many-to-many>
        </set>

        <!-- privileges属性,表达了我与Privilege的多对多关系 -->
        <set name="privileges" table="usst_role_privilege" lazy="false">
            <key column="roleId"></key>
            <many-to-many class="Privilege" column="privilegeId"></many-to-many>
        </set>
    </class>

Privilege.hbm.xml中


    <class name="Privilege" table="usst_privilege">
        <id name="id">
            <generator class="native" />
        </id>
        <property name="url" column="url"></property>
        <property name="name" column="name"></property>

        <!-- roles属性,表达了我与Role的多对多关系 -->
        <set name="roles" table="usst_role_privilege">
            <key column="privilegeId"></key>
            <many-to-many class="Role" column="roleId"></many-to-many>
        </set>

        <!-- parent属性,表达了我与Privilege(上级)的多对一关系 -->
        <many-to-one name="parent" class="Privilege" column="parentId"></many-to-one>

        <!-- children属性,表达了我与Privilege(下级)的一对多关系 -->
        <set name="children" order-by="id ASC" lazy="false">
            <key column="parentId"></key>
            <one-to-many class="Privilege" />
        </set>
    </class>



增删改查所用的6Action方法的模板

/** 列表 */

public String list()throws Exception {return"list"; }

/** 删除 */

public String delete()throws Exception {return"toList"; }

/** 添加页面 */

public StringaddUI()throws Exception {return"saveUI"; }

/** 添加 */

public String add()throws Exception {return"toList"; }

/** 修改页面 */

public StringeditUI()throws Exception {return"saveUI"; }

/** 修改 */

public String edit()throws Exception {return"toList"; }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值