import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="jpa_order")
public class Order {
private Integer id;
private String orderName;
private Customer customer;
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Id
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name="orderName")
public String getOrderName() {
return orderName;
}
public void setOrderName(String orderName) {
this.orderName = orderName;
}
//映射单项多对一关系
@JoinColumn(name="Customer_ID")
@ManyToOne
public Customer getCustomer() {
return customer;
}
public void setCustomer(Customer customer) {
this.customer = customer;
}
}
------------------------------------------------------------
package jpaHello;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Table(name="CUSTOMERS")
@Entity
public class Customer {
private Integer id;
private String name;
private String email;
private int age;
private Set<Order> orders;
@Column(name="ID")
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Id
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(name="Name")
public String getName() {
return name;
}
//可以使用mappedby将掌握权交给对方,但使用的时候不能有joincolumn
@JoinColumn(name="CUSTOMER_ID")
@OneToMany(fetch=FetchType.EAGER,cascade= {CascadeType.REMOVE})
public Set<Order> getOrders() {
return orders;
}
public void setOrders(Set<Order> orders) {
this.orders = orders;
}
@Override
public String toString() {
return "Customer [id=" + id + ", name=" + name + ", email=" + email + ", age=" + age + "]";
}
public void setName(String name) {
this.name = name;
}
@Column(name="Email")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Column(name="Age")
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
======================================
package jpaHello;
import java.util.HashMap;
import java.util.Map;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import org.omg.CORBA.PUBLIC_MEMBER;
public class JPATest {
public static void main(String[] args) {
//persistence.xml文件中persistence-unit标签name属性值
String persistenceUnitName = "JPA";
//1.创建EntitymanagerFactory
Map<String, Object> properities=new HashMap<String, Object>();
properities.put("hibernate.show_sql", true);
EntityManagerFactory entityManagerFactory =
Persistence.createEntityManagerFactory(persistenceUnitName,properities );
//2.创建EntityManager
EntityManager entityManager = entityManagerFactory.createEntityManager();
//3.开启事务
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
/* Order order=entityManager.find(Order.class, 17);
System.out.println(order.getOrderName());
System.out.println(order.getCustomer().getName());*/
//4.进行持久化操作
//级联删除
/*Order order2=entityManager.find(Order.class, 17);
entityManager.remove(order2);*/
/* Customer customer=entityManager.find(Customer.class,22 );
entityManager.remove(customer);*/
//级联Update
Order order=entityManager.find(Order.class, 15);
order.getCustomer().setName("ccccc");
/*级联添加
Customer customer=new Customer();
customer.setAge(2);
customer.setEmail("bbb");
customer.setName("bbbbbb");
Order order=new Order();
order.setOrderName("o1");
Order order2=new Order();
order2.setOrderName("o2");
Order order3=new Order();
order3.setOrderName("o3");
order.setCustomer(customer);
order2.setCustomer(customer);
order3.setCustomer(customer);
entityManager.persist(customer);
entityManager.persist(order);
entityManager.persist(order2);
entityManager.persist(order3);
*/
//5. 提交事务
transaction.commit();
//6.关闭EntityManager
entityManager.close();
//7.关闭EntityManager
entityManagerFactory.close();
}
}