Hibernate組件映射代碼詳解
本文研究的主要是Hibernate組件映射的相關(guān)內(nèi)容,具體如下。
組件關(guān)聯(lián)映射的屬性是復(fù)雜類型的持久化類,但不是實體類,即數(shù)據(jù)庫中沒有表與該屬性對應(yīng),但該類的屬性要持久保存。
比如:外國人的名字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; } }
注:這是一個組件類,不和數(shù)據(jù)庫進(jìn)行映射,它對應(yīng)People中的name字段。
People.java:
public class People { private Integer pid; /*名字通過MyName這個類來組合,即組件關(guān)聯(lián)*/ 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類)關(guān)聯(lián)來是實現(xiàn)的。
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來實現(xiàn)主鍵的映射 --> <component name="name" class="MyName"> <property name="firstName" /> <property name="lastName" /> </component> </class> </hibernate-mapping>
注:組件關(guān)聯(lián)是通過<component>標(biāo)簽來映射的。
測試類:
public void testSave1(){ /*定義Session和事物*/ Session session = null; Transaction transaction = null; try { /*獲取Session并開啟事物*/ session = HibernateUtils.getSession(); transaction = session.beginTransaction(); /*創(chuàng)建名字*/ MyName myName = new MyName(); myName.setFirstName("喬治"); myName.setLastName("華盛頓"); /*創(chuàng)建人并設(shè)置屬性*/ People people = new People(); people.setName(myName); session.save(people); /*提交事物*/ transaction.commit(); } catch (Exception e) { e.printStackTrace(); transaction.rollback(); } finally{ HibernateUtils.closeSession(session); } }
總結(jié)
以上就是本文關(guān)于Hibernate組件映射代碼詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- Hibernate雙向多對多映射關(guān)系配置代碼實例
- 詳解hibernate雙向多對多關(guān)聯(lián)映射XML與注解版
- Java的Hibernate框架中一對多的單向和雙向關(guān)聯(lián)映射
- Java的Hibernate框架中的雙向主鍵關(guān)聯(lián)與雙向外鍵關(guān)聯(lián)
- Hibernate一對多關(guān)聯(lián)雙向關(guān)聯(lián)代碼實現(xiàn)分享
- Hibernate映射文件id的generator配置方法
- Hibernate使用hbm.xml配置映射關(guān)系解析
- 快速了解hibernate配置文件與映射文件
- Hibernate雙向一對一映射關(guān)系配置代碼實例
相關(guān)文章
Java使用IntelliJ IDEA連接MySQL的詳細(xì)教程
這篇文章主要給大家介紹了關(guān)于Java使用IntelliJ IDEA連接MySQL的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04舉例講解Java中synchronized關(guān)鍵字的用法
這篇文章主要介紹了Java中synchronized關(guān)鍵字的用法,針對synchronized修飾方法的使用作出了簡單講解和演示,需要的朋友可以參考下2016-04-04SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取
SSH框架網(wǎng)上商城項目第2戰(zhàn)之基本增刪查改、Service和Action的抽取,感興趣的小伙伴們可以參考一下2016-05-05SpringBoot應(yīng)用能直接運行java -jar的原因分析
這篇文章主要介紹了SpringBoot應(yīng)用為什么能直接運行java -jar,首先明確一點,普通jar包是不能直接運行的,比如工具類jar,要能運行,至少得要一個main函數(shù)作為入口吧?本文給大家介紹了詳細(xì)的原因分析,需要的朋友可以參考下2024-03-03springboot+angular4前后端分離 跨域問題解決詳解
這篇文章主要介紹了springboot+angular4前后端分離 跨域問題解決詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09