Tôi đã tạo mặt tiền phiên EJB trong Netbeans 7 để lưu thực thể của mình. Tôi có một ánh xạ nhiều người giữa Bảo hiểm của tôi và Lớp RatePlan.Ràng buộc xác nhận đậu bị vi phạm trong khi thực hiện Xác thực Bean tự động trên sự kiện gọi lại: 'prePersist'
public class Insurance{
@ManyToOne(optional=false)
@JoinColumn(name="PLAN_ID")
private RatePlan plan;
}
public class RatePlan{
@OneToMany(mappedBy="plan")
private Set<Insurance> insuranceItems;
}
Khi tôi thử lưu trong cơ sở dữ liệu của mình bằng EJB Session Bean, tôi gặp phải lỗi bên dưới.
Gây ra bởi: javax.validation.ConstraintViolationException: Bean Hạn chế xác thực bị vi phạm trong khi thực thi Xác thực Bean tự động trên sự kiện gọi lại: 'prePersist'. Vui lòng tham khảo các giải pháp ConstraintViolations được nhúng để biết chi tiết.
Điều tôi đã làm là tắt tính năng xác thực Bean trong tệp Persistence.xml của mình. Tôi muốn biết lỗi xác thực Bean đã xảy ra nhưng tôi không biết cách hoặc tìm nơi hoặc cách cấu hình và bắt nó.
Mặt tiền EJB của tôi là một lớp đơn giản như tis.
public class InsuranceFacade{
public void saveInsurance(Insurance insurance){
em.persist(insurance);
}
}
Bất kỳ gợi ý nào?
Tôi tò mò muốn biết vi phạm có thể là gì, khi không có chú thích xác thực bean cụ thể trong các thực thể này! – stratwine
Tôi thực sự xóa tất cả chú thích xác nhận bean để mã dễ đọc hơn ... =) –