读书人

JPA 双向一对多联系关系(@OneToMany)

发布时间: 2012-09-22 21:54:54 作者: rapoo

JPA 双向一对多关联(@OneToMany)
一个客户可以有多个地址,一个地址又可以获得所属的客户。客户和地址是一对多的关系,并且地址与客户是双向关联的。实例如下:

  测试类 TestJPA.javapackage com.demo.bean.onetomany1;import java.util.Collection;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.EntityTransaction;import javax.persistence.Persistence;public class TestJPA {/** * 测试jpa注解 * @param args */public static void main(String[] args) {// TODO Auto-generated method stubEntityManagerFactory emf = Persistence.createEntityManagerFactory("tpdb");EntityManager em = emf.createEntityManager();EntityTransaction et = em.getTransaction();et.begin();    saveOneToMany(em);    et.commit();        //查询    Customer_m ctm = em.find( Customer_m.class, new Long(4));    Collection cot  = ctm.getAddress();    for( Object address_m:cot){    Address_m am = (Address_m) address_m;    System.out.println("cm---am --"+am.getDetail());    }    }private static void saveOneToMany(EntityManager em){Customer_m ct = new Customer_m();ct.setName("小叶");Address_m ad = new Address_m();ad.setProvince("河南省");ad.setCity("开封市");ad.setPostcode("601000");ad.setDetail("雨花区");Address_m ad1 = new Address_m();ad1.setProvince("海南省");ad1.setCity("台北市");ad1.setPostcode("656110");ad1.setDetail("开花区");//关联ct.getAddress().add( ad );ct.getAddress().add( ad1 );ad.setCustomer( ct );ad1.setCustomer( ct );         em.persist( ct );}}

读书人网 >软件架构设计

热点推荐