【Hibernate】Hibernate实体关系映射——单边的多对一关系
單邊的多對一關系
?? 單邊的多對一關系與單邊的一對多關系剛好相反,多方有一方的引用,一方沒有多方的引用,但是他們的數據表間的關系是一樣的。例如:論文與論文類別;
具體實現如下:
?
? Type實體類的java注解配置比較簡單。由于沒有Article引用,Type就是最普通的POJO實體,主鍵為id屬性,只有一個String類型的普通屬性name。注意:name被配置為unique的,利用數據庫提供的unique約束保證數據庫中不會有重復的數據。
?
Type.java
?
package com.lmb.hibernate.bean;import javax.persistence.*;@Entity @Table(name="tb_type") public class Type {@Id@GeneratedValue(strategy = GenerationType.AUTO)private Integer id;@Column(unique = true)private String name;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;} }
?
???? ?Article屬性中有一個Type類型的屬性。該屬性將配置為ManyToOne的。Article中配置了級聯操作PERSIST,如果Type對象沒有被持久化,則持久化Article對象是會一并持久化Type對象。由于content字段內容可能比較長,因此配置content列的數據庫類型為text。如果要存儲更多的內容,可配置為longtext。
?
Article.java
?
?
?
?? 將兩個實體配置到hibernate配置文件中。
?
hibernate.cfg.xml
?
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration><session-factory><property name="dialect">org.hibernate.dialect.MySQLDialect</property><property name="connection.url">jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8</property><property name="connection.username">lmb</property><property name="connection.password">lmb</property><property name="connection.driver_class">com.mysql.jdbc.Driver</property><mapping class="com.lmb.hibernate.bean.Person" /><mapping class="com.lmb.hibernate.bean.Email" /><mapping class="com.lmb.hibernate.bean.Type" /><mapping class="com.lmb.hibernate.bean.Article" /></session-factory></hibernate-configuration>
?
測試方法:
?
?? 先實例化一個Type對象,一個Article對象,并設置批次的依賴關系。然后通過HibernateSessionFactory打開一個session會話,開啟Transaction事務,然后保存Article對象。由于Article中設置了級聯保存,保存Article時hibernate將自動級聯保存Type對象。然后查詢所有的Article并輸出。查看結果。
?
?
?
?
?
總結
以上是生活随笔為你收集整理的【Hibernate】Hibernate实体关系映射——单边的多对一关系的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Hibernate】Hibernate
- 下一篇: 【HibernateHibernate实