在之前已經討論過值型別與個體型別的差異了
以本文為例舉個例子,在一對多當中如果多的這一方並不需要一個實際的類別
例如說該資料只是一個字串,但這筆資料必須存入到資料庫當中
這時候就可以以一對多的(Value Type) 的關係映射來實現本案例
我們以一個人(Person)有多個信箱 email 來舉例
顯然的人(Person)是一,而 email 是多,而且 email 僅以字串格式儲存
來看一下 Person.java
package MapPOJO; import java.util.Set; public class Person implements java.io.Serializable { private Long id; private String name; private Set email; public Person(){} public Long getId(){ return id; } public void setId(Long id){ this.id = id; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public Set getEmail(){ return email; } public void setEmail(Set email){ this.email= email; } }
接下來是組態檔 Person.hbm.xml
最後以一張網頁 Insert 資料作示範
<%
Person e1 = new Person();
e1.setName("Fang");
Persone2 = new Person();
e2.setName("Lin");
Set email1 = new HashSet();
email1.add("abc@hotmail.com");
email1.add("def@yahoo.com");
email1.add("ABC@gmail.com");
Set email2 = new HashSet();
email2.add("user@hotmail.com");
email2.add("user2@hotmail.com");
e1.setEmail(email1);
e2.setEmail(email2);
org.hibernate.SessionFactory sessionfactory = HibernateUtil.getSessionFactory();
org.hibernate.Session sess = sessionfactory.openSession();
org.hibernate.Transaction tx = sess.beginTransaction();
sess.save(e1);
sess.save(e2);
tx.commit();
sess.close();
%>
沒有留言:
張貼留言