Customer类

@Table(name="jpa_customer")@Entitypublic class Customer {	@Column(name="id")	@GeneratedValue(strategy=GenerationType.AUTO)	@Id	private Integer id;	@Column(name="last_name")	private String lastName;	private String email;	private int age;	//	@JoinColumn(name="customer_id")//外键名	//若在1的一端的@oneToMany中使用mappedBy属性,则@OneToMany端就不能使用@JoinColum属性	@OneToMany(fetch=FetchType.EAGER, cascade={CascadeType.REMOVE}, mappedBy = "customer")//映射一对多的关联关系,默认使用懒加载。cascade设置级联删除。	private Set
 orders = new HashSet<>(); //getter setter 省略}

Order类

@Table(name = "jps_order")@Entitypublic class Order {	@GeneratedValue	@Id	private Integer id;	@Column(name = "order_name")	private String orderName;	@JoinColumn(name = "customer_id")	// 外键	@ManyToOne(fetch=FetchType.LAZY)//懒加载	// 映射多对一的关联关系	private Customer customer;	//getter setter}

测试

//双向1-n,执行保存时,若先保存n,再保存1,默认情况下会多出4条update语句		//若先保存1,则会多出n条update语句		//建议在进行双向1-n关联关系时,使用n的一端来维护关联关系,而1的一端不维护关联关系,这样会有效减少SQL语句		//若在1的一端的@oneToMany中使用mappedBy属性,则@OneToMany端就不能使用@JoinColum属性		@Test		public void testOneToManyPersist2() {			Customer customer = new Customer();			customer.setAge(23);			customer.setEmail("umgsai@126.com");			customer.setLastName("shang");						Order order1 = new Order();			order1.setOrderName("订单1");						Order order2 = new Order();			order2.setOrderName("订单2");						customer.getOrders().add(order1);			customer.getOrders().add(order2);						order1.equals(customer);			order2.setCustomer(customer);						entityManager.persist(order1);			entityManager.persist(order2);			entityManager.persist(customer);		}

好复杂,还是MyBatis简单。。。