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 );}}