2010-03-31 27 views
5

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!

+0

xin vui lòng cho trả lời của bạn xuống dưới câu trả lời – developer

Trả lời

0

Vui lòng kiểm tra những liên kết này, bạn sẽ nhận được thông tin tốt:

validator-checkconstraints

additionalmodules

+0

Cảm ơn cho các liên kết, nhưng điều này không giải quyết được câu hỏi của tôi. – purecharger

+0

Tôi nghĩ nếu bạn đọc liên kết Damodar 1st, bạn sẽ tìm thấy những gì bạn cần trong ví dụ 6.1. Hãy thử mở rộng javax.validation.groups.Default và đưa lớp của bạn vào xml. Tôi đã gặp vấn đề tương tự và tôi đã xóa chú thích xác thực và nó đã hoạt động khi cần. –

Các vấn đề liên quan