Tôi đang sử dụng JBoss 6 với Đường may và tôi có một thực thể mà tôi đang cố gắng giữ nguyên, User
. Tôi đã mở rộng org.jboss.seam.framework.EntityHome
để cung cấp lớp học UserHome
và đã ghi đè phương thức persist()
. Tôi đã chú thích kỹ lưỡng lớp thực thể của mình với chú thích javax.validation. Khi tôi cung cấp các giá trị hợp lệ cho tất cả các trường trong lớp thực thể của tôi, đối tượng được tiếp tục tồn tại mà không có vấn đề gì. Khi tôi vi phạm một trong các ràng buộc xác nhận, sự kiên trì không thành công như mong đợi.Thực thể tiếp tục đăng ký trình xác nhận hợp lệ
Sự cố tôi gặp phải là có vi phạm ràng buộc trong thời gian không đồng bộ không đồng bộ: hibernate không cho tôi biết ràng buộc nào đã bị vi phạm!
javax.validation.ConstraintViolationException: validation failed for classes [com.example.model.User] duringpersist time for groups [javax.validation.groups.Default, ]
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:132)
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreInsert(BeanValidationEventListener.java:71)
Nếu tôi buộc kiên trì đồng bộ bằng cách thêm EntityManager.flush()
-UserHome.persist()
, sau đó tôi có thể bắt ConstraintViolationException
và đăng nhập đầu ra báo cáo có chứa những hạn chế vi phạm.
Câu hỏi của tôi: có thể đăng ký người nghe với hibernate/jboss cho các vi phạm ràng buộc không? Tôi nghĩ rằng một chút lame của nó mà hibernate doesnt in các vi phạm, nhưng hy vọng tôi có thể chèn một số mã mà sẽ bắt và đăng nhập chúng để biết thêm thông tin. Nếu không, tôi không biết ràng buộc nào đã bị vi phạm.
Cảm ơn!
xin vui lòng cho trả lời của bạn xuống dưới câu trả lời – developer