您的位置:首页 > 其它

hibernate 继承 映射中的几点问题

2010-04-30 11:23 405 查看
public class SysModule {
    /**
     * 主键
     */
    private int id;
    /**
     * 唯一标示
     */
    private String sn;
    /**
     * 模块名称
     */
    private String sysModuleName;
    /**
     * 模块地址
     */
    private String sysUrl;
    /**
     * 同一层次上各个模块之间的排序

     */
    private int orderId;

    /**
     * 是否叶子节点
     */
    private int isLeaf;
    /**
     * 所在层

     */
    private String sysLevel;

    /**
     * 备注
     */
    private String remark;

    /**
     * 孩子模块
     */
    private Set<SysModule> childModules;
    /**
     * 上级模块
     */
    private SysModule parentModule;

    //.... setter getter
}
public class OrgDep extends SysModule {
  // 无属性
}




public class OrgPost extends SysModule {
  // 无属性
}


<hibernate-mapping package="cn.xyurp.system.bean">
	<class name="cn.xyurp.system.bean.SysModule"
		table="t_sysmodule">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="sysModuleName" length="50" not-null="true" />
		<property name="sysUrl" length="50" />
		<property name="orderId"  not-null="true"/>
		<property name="sn" length="20" not-null="true"/>
		<property name="isLeaf"  not-null="true"/>
		<property name="sysLevel"  not-null="true"/>
		<property name="remark" length="3000" />
		
		<many-to-one column="pid" name="parentModule" />
		<set name="childModules" lazy="extra" inverse="true"
			order-by="orderId">
			<key column="pid" />
			<one-to-many class="cn.xyurp.system.bean.SysModule" />
		</set>
	</class>
</hibernate-mapping>






<hibernate-mapping package="cn.xyurp.rsgl.bean">
	<class name="OrgDep" table="t_rsgl_Org_dep">
		<!-- 组织机构管理:部门管理 -->
		<id name="id">
			<generator class="native" />
		</id>
		<!-- 部门编码 -->
		<property name="sn" column="orgId" type="string" length="50" not-null="true"></property>
		<!-- 部门名称 -->
		<property name="sysModuleName" column="depName" length="50" not-null="true" />
		<!-- 显示顺序 -->		
		<property name="orderId"  not-null="true"/>
		<many-to-one column="pid" name="parentModule" />
		
		<set name="childModules" lazy="extra" inverse="true" order-by="orderId">
			<key column="pid" />
			<one-to-many class="OrgDep" />
		</set>
		<!-- 描述 -->
		<property name="remark" type="string" length="3000"></property>
	</class>
</hibernate-mapping>


<hibernate-mapping package="cn.xyurp.rsgl.bean">
	<class name="OrgPost" table="t_rsgl_Org_post">
		<!-- 组织机构管理:岗位管理管理 -->
		<id name="id">
			<generator class="native" />
		</id>
		<!-- 部门编码 -->
		<property name="sn" column="postId" type="string" length="50" not-null="true"></property>
		<!-- 部门名称 -->
		<property name="sysModuleName" column="postName" length="50" not-null="true" />
		<!-- 显示顺序 -->		
		<property name="orderId"  not-null="true"/>
		<many-to-one column="pid" name="parentModule" />
		
		<set name="childModules" lazy="extra" inverse="true"
			order-by="orderId">
			<key column="pid" />
			<one-to-many class="OrgPost" />
		</set>
		<!-- 描述 -->
		<property name="remark" type="string" length="3000"></property>
	</class>
</hibernate-mapping>








select count(*) from SysModule ...

会生成 三条 sql 

select count(*) from t_sysModule 

select count(*) from t_rsgl_org_dep 

select count(*) from t_rsgl_org_post
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: