1、实体
package per.jerry.hibernate.OneManyRel;
public class BankCard {
private int id;
private long sno;
private String bankName;
private String publicAddr;
/**
* @return the sno
*/
public long getSno() {
return sno;
}
/**
* @param sno the sno to set
*/
public void setSno(long sno) {
this.sno = sno;
}
/**
* @return the bankName
*/
public String getBankName() {
return bankName;
}
/**
* @param bankName the bankName to set
*/
public void setBankName(String bankName) {
this.bankName = bankName;
}
/**
* @return the publicAddr
*/
public String getPublicAddr() {
return publicAddr;
}
/**
* @param publicAddr the publicAddr to set
*/
public void setPublicAddr(String publicAddr) {
this.publicAddr = publicAddr;
}
}
package per.jerry.hibernate.OneManyRel;
import java.util.List;
import java.util.Set;
public class Customer {
public int id;
public String name;
public String addr;
public String phoneNO;
public Set<BankCard> cardList;
/**
* @return the id
*/
public int getId() {
return id;
}
/**
* @param id the id to set
*/
public void setId(int id) {
this.id = id;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the addr
*/
public String getAddr() {
return addr;
}
/**
* @param addr the addr to set
*/
public void setAddr(String addr) {
this.addr = addr;
}
/**
* @return the phoneNO
*/
public String getPhoneNO() {
return phoneNO;
}
/**
* @param phoneNO the phoneNO to set
*/
public void setPhoneNO(String phoneNO) {
this.phoneNO = phoneNO;
}
/**
* @return the cardList
*/
public Set<BankCard> getCardList() {
return cardList;
}
/**
* @param cardList the cardList to set
*/
public void setCardList(Set<BankCard> cardList) {
this.cardList = cardList;
}
}
2、配置文件
<?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>
<class name="per.jerry.hibernate.OneManyRel.BankCard" table="BANKCARD">
<id name="id" type="int" access="field">
<column name="ID" />
<generator class="native" />
</id>
<property name="sno" type="long">
<column name="SNO" />
</property>
<property name="bankName" type="java.lang.String">
<column name="BANKNAME" />
</property>
<property name="publicAddr" type="java.lang.String">
<column name="PUBLIC_ADDR" />
</property>
</class>
</hibernate-mapping>
<?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>
<class name="per.jerry.hibernate.OneManyRel.Customer" table="CUSTOMER">
<id name="id" type="int">
<column name="ID" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" />
</property>
<property name="addr" type="java.lang.String">
<column name="ADDR" />
</property>
<property name="phoneNO" type="java.lang.String">
<column name="PHONENO" />
</property>
<set name="cardList" table="BANKCARD" inverse="false" lazy="false" cascade="all">
<key>
<column name="CUSTOMER_ID" />
</key>
<one-to-many class="per.jerry.hibernate.OneManyRel.BankCard" />
</set>
</class>
</hibernate-mapping>
3、测试类
package per.jerry.hibernate.OneManyRel;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class TestOneManyRel {
Session session ;
@Before
public void before(){
SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
session = sessionFactory.getCurrentSession();
session.beginTransaction();
}
@After
public void after(){
session.getTransaction().commit();
}
public void testSave(){
BankCard c1 = new BankCard();
c1.setBankName("招行");
c1.setPublicAddr("北京西二旗支行");
c1.setSno(new Long("622588888888888"));
BankCard c2 = new BankCard();
c2.setBankName("建行");
c2.setPublicAddr("北京上地支行");
c2.setSno(new Long("610166666666"));
BankCard c3 = new BankCard();
c3.setBankName("招行");
c3.setPublicAddr("北京西二旗支行");
c3.setSno(new Long("6225777744422221"));
Set<BankCard> list = new HashSet();
list.add(c1);
list.add(c2);
list.add(c3);
Customer c = new Customer();
c.setAddr("北京海淀");
c.setName("Jerry");
c.setPhoneNO("13112341234");
c.setCardList(list);
session.save(c);
}
@Test
public void testQuery(){
Customer c = (Customer)session.load(Customer.class, 3);
System.out.println("加载:"+c.getName());
java.util.Set set = c.getCardList();
java.util.Iterator iterator = set.iterator();
while(iterator.hasNext()){
BankCard b = (BankCard)iterator.next();
System.out.println(b.getBankName());
System.out.println(b.getSno());
}
}
}