溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate組件映射代碼詳解

發布時間:2020-10-21 21:34:11 來源:腳本之家 閱讀:177 作者:lavimer 欄目:編程語言

本文研究的主要是Hibernate組件映射的相關內容,具體如下。

組件關聯映射的屬性是復雜類型的持久化類,但不是實體類,即數據庫中沒有表與該屬性對應,但該類的屬性要持久保存。

比如:外國人的名字name分為firstName和lastName。

MyName.java:

public class MyName {
	private String firstName;
	private String lastName;
	public String getFirstName() {
		return firstName;
	}
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}
	public String getLastName() {
		return lastName;
	}
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}
}

注:這是一個組件類,不和數據庫進行映射,它對應People中的name字段。

People.java:

public class People {
	private Integer pid;
	/*名字通過MyName這個類來組合,即組件關聯*/
	private MyName name;
	public Integer getPid() {
		return pid;
	}
	public void setPid(Integer pid) {
		this.pid = pid;
	}
	public MyName getName() {
		return name;
	}
	public void setName(MyName name) {
		this.name = name;
	}
}

注:name字段是通過組件(MyName類)關聯來是實現的。

People.hbm.xml:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC  
  "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
  "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping package="com.lixue.bean"> 
  <class name="People" table="t_people"> 
    <id name="pid"> 
      <generator class="native"/> 
    </id> 
     
    <!-- 通過Component來實現主鍵的映射 --> 
    <component name="name" class="MyName"> 
      <property name="firstName" /> 
      <property name="lastName" /> 
    </component> 
     
  </class> 
</hibernate-mapping> 

注:組件關聯是通過<component>標簽來映射的。

測試類:

public void testSave1(){
	/*定義Session和事物*/
	Session session = null;
	Transaction transaction = null;
	try {
		/*獲取Session并開啟事物*/
		session = HibernateUtils.getSession();
		transaction = session.beginTransaction();
		/*創建名字*/
		MyName myName = new MyName();
		myName.setFirstName("喬治");
		myName.setLastName("華盛頓");
		/*創建人并設置屬性*/
		People people = new People();
		people.setName(myName);
		session.save(people);
		/*提交事物*/
		transaction.commit();
	}
	catch (Exception e) {
		e.printStackTrace();
		transaction.rollback();
	}
	finally{
		HibernateUtils.closeSession(session);
	}
}

總結

以上就是本文關于Hibernate組件映射代碼詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女