3
我有問題二實體:JPA:與堅持外鍵約束
客戶實體
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@OneToMany(mappedBy="customer", cascade=CascadeType.ALL)
private List<Facility> facilities;
//Setter and Getter for name and facilities
public void addFacility(Facility facility){
this.facilities.add(facility);
}
}
設施實體
@Entity
public class Facility {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name="CUSTOMER_FK")
private Customer customer;
private String name;
//Setter and Getter, equals and hashcode
...
}
因此,在我主我這樣做
Customer customer = new Customer();
customer.setName("Wake Forest University");
Facility facility = new Facility();
facility.setName("Tom Cruise");
EntityManager entityManager = Persistence.createEntityManagerFactory("EntityClassPU").createEntityManager();
entityManager.getTransaction().begin();
customer.addFacility(facility);
entityManager.persist(customer);
entityManager.getTransaction().commit();
Wake Forest University
被成功插入到Customer
,Tom Cruise
被成功插入Facility
,然而在Facility
裏,CUSTOMER_FK
的值爲空,這表明我失敗了持續的外鍵約束。我在這裏做錯了什麼?
你真棒。謝謝你:D – 2010-07-27 23:59:54
@HarryPham:不客氣! – 2010-07-28 01:31:31
太棒了!這也解決了我的問題... – venomrld 2011-11-24 15:28:43