hibernate自关联配置

1.表结构

   CREATE TABLE `product_category` (
  `product_category_id` int(11) NOT NULL,
  `product_category_name` varchar(255) NOT NULL,
  `product_total_number` int(11) NOT NULL,
  `parent_id` int(11) NOT NULL COMMENT '父级ID',
  `is_parent` bit(1) NOT NULL COMMENT '是否还有子级',
  PRIMARY KEY  (`product_category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


alter table product_category add index fk_category_parent_id (parent_id),
alter table product_category add constraint foreign_category_parent_id foreign key (parent_id) references product_category(product_category_id);


2、实体

      

package com.eywa.domain;

import java.util.Set;



public class ProductCategory implements java.io.Serializable,Comparable<ProductCategory>{
	private static final long serialVersionUID = 1381736107052831957L;
	
	private Integer productCategoryId;  //商品种类ID
	private String productCategoryName; //商品种类名称
	private Integer productTotalNumber; //该类商品数量
	private Integer parentId;           //父级ID
	private Boolean isParent;           //是否还有子级
	
	private ProductCategory   parentProductCategory;//父
	private Set<ProductCategory> childProductCategory;//子分类集合
	
	public ProductCategory(){
		
	}
	
	public int compareTo(ProductCategory o) {
		return productCategoryId>o.getProductCategoryId()?1:(productCategoryId==o.getProductCategoryId()?0:-1);
	}

	public Integer getProductCategoryId() {
		return productCategoryId;
	}
	public void setProductCategoryId(Integer productCategoryId) {
		this.productCategoryId = productCategoryId;
	}
	public String getProductCategoryName() {
		return productCategoryName;
	}
	public void setProductCategoryName(String productCategoryName) {
		this.productCategoryName = productCategoryName;
	}
	public Integer getProductTotalNumber() {
		return productTotalNumber;
	}
	public void setProductTotalNumber(Integer productTotalNumber) {
		this.productTotalNumber = productTotalNumber;
	}
	public Integer getParentId() {
		return parentId;
	}
	public void setParentId(Integer parentId) {
		this.parentId = parentId;
	}

	public Boolean getIsParent() {
		return isParent;
	}

	public void setIsParent(Boolean isParent) {
		this.isParent = isParent;
	}

	public Set<ProductCategory> getChildProductCategory() {
		return childProductCategory;
	}

	public void setChildProductCategory(Set<ProductCategory> childProductCategory) {
		this.childProductCategory = childProductCategory;
	}

	public ProductCategory getParentProductCategory() {
		return parentProductCategory;
	}

	public void setParentProductCategory(ProductCategory parentProductCategory) {
		this.parentProductCategory = parentProductCategory;
	}
	
	
}

3、实体对应的配置文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="com.eywa.domain.ProductCategory" table="product_category" >
        <id name="productCategoryId" type="java.lang.Integer">
            <column name="product_category_id" />
            <generator class="assigned" />
        </id>
        
        <many-to-one name="parentProductCategory" column="parent_id" cascade="all" class="com.eywa.domain.ProductCategory"></many-to-one>
        <set name="childProductCategory" cascade="all" inverse="true">
           <key column="parent_id"></key>
           <one-to-many class="com.eywa.domain.ProductCategory"/>
        
        </set>
        
        <property name="productCategoryName" type="java.lang.String">
            <column name="product_category_name" not-null="true">
                <comment></comment>
            </column>
        </property>
        <property name="productTotalNumber" type="java.lang.Integer">
            <column name="product_total_number" not-null="true">
                <comment></comment>
            </column>
        </property>
		<!-- <property name="parentId" type="java.lang.Integer">
            <column name="parent_id" not-null="true">
                <comment>父级ID</comment>
            </column>
        </property> -->
		<property name="isParent" type="java.lang.Boolean">
            <column name="is_parent" not-null="true">
                <comment>是否还有子级</comment>
            </column>
        </property>
    </class>
</hibernate-mapping>


猜你喜欢

转载自blog.csdn.net/zziamalei/article/details/45767087