0
我正在使用JPA和Hibernate 4.1 2.0我需要保存兩個主/明細表。我的問題是,詳細的例外情況,沒有在表中存儲任何數據。當JPA發生異常時回滾事務
下面顯示我的代碼。
@Entity
@Table(name = "tblmaster")
public class Master implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String mail;
private List<Detail> listDetail = new ArrayList<Detail>();
@Id
@Column(name = "secmaster", nullable = false, unique = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@OneToMany(mappedBy = "master", cascade = CascadeType.ALL, targetEntity = Detail.class,fetch = FetchType.EAGER)
public List<Detail> getListDetail() {
return listDetail;
}
public void setListDetail(List<Detail> listaProgramaEducativo) {
this.listDetail = listDetail;
}
public void addDetail(Detail detail) {
listDetail.add(detail);
detail.setDetail(this);
}
@Entity
@Table(name = "tbldetail")
public class Detail implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Master master;
@Id
@Column(name = "secdetail", nullable= false, unique = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "secmaster")
public Master getMaster() {
return master;
}
public void setMaster(Master master) {
this.master = master;
}
Master master = new Master();
master.setMail(「[email protected]」);
Detail detail1 = new Detail();
Detail detail2 = new Detail();
master.addDetail(detail1);
master.addDetail(detail2);
session.persist(master);
master.addDetail();
在這個例子中,我正在通過字段的大小詳細說明一個例外。我需要的是,如果我詳細地創建一個例外不保留在主人。