2013-11-26 18 views
5

Tôi muốn triển khai theo dõi lịch sử/kiểm tra cho một trong các thực thể mẫu của mình bằng cách sử dụng bảng mới để lưu trữ nhật ký với người dùng đã thực hiện thay đổi, ngày và bất kỳ thay đổi nào trong mỗi lần cập nhật/chèn .Theo dõi lịch sử với JPA

Tôi đang sử dụng EclipseLink làm nhà cung cấp JPA của mình, nhưng tôi không muốn sử dụng số History Policy của mình vì nhà cung cấp có thể thay đổi trong tương lai. Tôi không thể sử dụng Hibernate Envers vì lý do tương tự.

Tôi nhìn vào auditing support which Spring Data provides, nhưng có vẻ rất cơ bản và nó chỉ cho phép bạn lưu trữ người dùng đã tạo hoặc sửa đổi thực thể và ngày, chứ không phải thay đổi.

Tôi cũng biết về JPA của prePersistpreUpdate, nhưng specificacion nói rằng:

Nói chung, phương pháp vòng đời của một ứng dụng di động không nên gọi EntityManager hoặc Query hoạt động, truy cập thực thể khác trường hợp, hoặc sửa đổi các mối quan hệ trong cùng một ngữ cảnh: .

Có cách làm sạch, dễ dàng và di động để thực hiện việc này không?

Trả lời

1

Tôi đã thực hiện thủ công, với dịch vụ EJB riêng biệt, người chịu trách nhiệm trích xuất dữ liệu lịch sử và lưu nó dưới dạng MAP. Nó là rất thô sơ, trong đó chỉ có dữ liệu cơ bản và ID của các mối quan hệ được lưu, nhưng đó là đủ cho trường hợp của tôi.

Về cơ bản, tôi đã kiểm tra các thuộc tính liên tục với một chút phản ánh.

+0

Cảm ơn bạn Andrei, tôi sẽ thử một cái gì đó tương tự – zootropo

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