hibernate mapping configuration xml way

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

<hibernate-mapping>
    <class name="com.jaeson.hibernatestudy.bean.Role" table="role" catalog="db4myeclipse">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native"></generator>
        </id>
        <property name="roleName" type="java.lang.String">
            <column name="roleName" length="32" not-null="true" />
        </property>
        <property name="roleDesc" type="java.lang.String">
            <column name="roleDesc" length="128" />
        </property>
        
        <!-- many2many bidirectional association -->
        <set name="users" inverse="true" table="user_role" catalog="db4myeclipse">
            <key>
                <column name="role_id" not-null="true" />
            </key>
            <many-to-many entity-name="com.jaeson.hibernatestudy.bean.User">
                <column name="user_id" length="32" not-null="true" />
            </many-to-many>
        </set>
    </class>
</hibernate-mapping>

 

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

<hibernate-mapping>
    <class name="com.jaeson.hibernatestudy.bean.IdCard" table="idcard" catalog="db4myeclipse">
        <id name="id" type="java.lang.String">
            <column name="id" length="32" />
            <generator class="uuid"></generator>
        </id>
        <property name="cardNo" type="java.lang.String">
            <column name="cardNo" length="32" not-null="true" />
        </property>
        <property name="authDate" type="java.sql.Timestamp">
            <column name="authDate" length="19" not-null="true" />
        </property>
		<!-- one2one is the loading method of shared primary key by default, the only foreign key association must set the loaded connection property at one end,
				The connection attribute refers to the attribute of the corresponding class of the table where the foreign key is located, and hibernate loads according to the field corresponding to the class attribute
				Connection class. IdCard is loaded according to the primary key id and the column card_id corresponding to the idCard attribute of the associated table class User
				User object. If the property-ref attribute is not set here, when User is loaded, it will be used by default
				IdCard.id=User.id to load, so the associated object cannot be loaded correctly.
				 -->
		<one-to-one name="user" class="com.jaeson.hibernatestudy.bean.User" property-ref="idCard"></one-to-one>
    </class>
</hibernate-mapping>

 

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

<hibernate-mapping>
    <class name="com.jaeson.hibernatestudy.bean.User" table="user" catalog="db4myeclipse">
        <id name="id" type="java.lang.String">
            <column name="id" length="32" />
            <generator class="uuid"></generator>
        </id>
        
        <property name="userName" type="java.lang.String">
            <column name="userName" length="32" not-null="true" />
        </property>
        
        <!-- Component mapping -->
		<component name="address" class="com.jaeson.hibernatestudy.bean.Address">  
	        <property name="address" type="java.lang.String">
	            <column name="address" length="128" />
	        </property>
	        <property name="zipCode" type="java.lang.Integer">
	            <column name="zipCode" />
	        </property>
	        <property name="phone" type="java.lang.String">
	            <column name="phone" length="32" />
	        </property>
	    </component>
		
		<!-- one2one foreign key association, implemented by unique="true" -->
        <many-to-one name="idCard" class="com.jaeson.hibernatestudy.bean.IdCard" cascade="all" fetch="select" unique="true">
            <column name="card_id" length="32" />
        </many-to-one>
        
        <!-- many2one association -->
        <many-to-one name="department" class="com.jaeson.hibernatestudy.bean.Department" fetch="select">
            <column name="dept_id" length="32" />
        </many-to-one>
       	
       	<!-- many2many association -->
       	<set name="roles" table="user_role" catalog="db4myeclipse">
            <key>
                <column name="user_id" length="32" not-null="true" />
            </key>
            <many-to-many entity-name="com.jaeson.hibernatestudy.bean.Role">
                <column name="role_id" not-null="true" />
            </many-to-many>
        </set>
    </class>
</hibernate-mapping>

 

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

<hibernate-mapping>
    <class name="com.jaeson.hibernatestudy.bean.Department" table="department" catalog="db4myeclipse">
        <id name="id" type="java.lang.String">
            <column name="id" length="32" />
            <generator class="assigned"></generator>
        </id>
        
        <property name="deptName" type="java.lang.String">
            <column name="deptName" length="32" not-null="true" />
        </property>
        
        <!-- Setting fetch="join" will use inner join for table join query when querying department, lazy invalidation-->
        <many-to-one name="parentDept" class="com.jaeson.hibernatestudy.bean.Department" fetch="join">
            <column name="parent_id" length="32" />
        </many-to-one>
        
        <set name="users" inverse="true">
            <key>
                <column name="dept_id" length="32" />
            </key>
            <one-to-many class="com.jaeson.hibernatestudy.bean.User" />
        </set>
        
        <set name="childDepts" inverse="true">
            <key>
                <column name="parent_id" length="32" />
            </key>
            <one-to-many class="com.jaeson.hibernatestudy.bean.Department" />
        </set>
    </class>
</hibernate-mapping>

  

 

 

 

 

 

 

 

 

 

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

<hibernate-mapping>
    <class name="com.jaeson.hibernatestudy.bean.Department" table="department" catalog="db4myeclipse">
        <id name="id" type="java.lang.String">
            <column name="id" length="32" />
            <generator class="assigned"></generator>
        </id>
        
        <property name="deptName" type="java.lang.String">
            <column name="deptName" length="32" not-null="true" />
        </property>
        
        <!-- 设置fetch="join"在查询department时会使用inner join进行表连接查询,lazy失效 -->
        <many-to-one name="parentDept" class="com.jaeson.hibernatestudy.bean.Department" fetch="join">
            <column name="parent_id" length="32" />
        </many-to-one>
        
        <set name="users" inverse="true">
            <key>
                <column name="dept_id" length="32" />
            </key>
            <one-to-many class="com.jaeson.hibernatestudy.bean.User" />
        </set>
        
        <set name="childDepts" inverse="true">
            <key>
                <column name="parent_id" length="32" />
            </key>
            <one-to-many class="com.jaeson.hibernatestudy.bean.Department" />
        </set>
    </class>
</hibernate-mapping>

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326989105&siteId=291194637