2015-01-26 13 views
5

Tôi đã triển khai trình xử lý sự kiện trước/sau cho các sự kiện Hibernate với một báo trước mà tôi chưa thể khắc phục. Tôi có một thực thể Departments có mối quan hệ nhiều-nhiều với một thực thể Centers. Khi gán một Trung tâm mới cho một cục, tôi chỉ đơn giản gọi:Trigger Hibernate (pre/post) Cập nhật sự kiện khi các thay đổi mối quan hệ

oDepartment.addCenter(oCenter); 
entitySave(oDepartment); 

Khi điều này xảy ra, tôi mong chờ Hibernate để kích hoạt các sự kiện preUpdate và postUpdate kể từ khi tôi biến đổi thực thể. Tuy nhiên, nó không bao giờ được kích hoạt trừ khi một thuộc tính cột cũng được cập nhật. Chỉ cập nhật thuộc tính mối quan hệ dường như không kích hoạt sự kiện cập nhật.

Nhìn qua phiên Hibernate hiện tại, tôi dường như không thể tìm thấy bất kỳ thứ gì cho phép tôi đặt một số loại cờ sẽ kích hoạt các sự kiện này để kích hoạt.

Suy nghĩ về cách tôi có thể khiến các sự kiện này kích hoạt?

Trả lời

3

Hibernate không kích hoạt trước/sau khi cập nhật sự kiện khi bộ sưu tập bị thay đổi. Thay vào đó nó sẽ kích hoạt

  • preCollectionUpdate/preCollectionRemove/preCollectionRecreate
  • postCollectionUpdate/postCollectionRemove/postCollectionRecreate.

Đây là lỗi cũ và đã biết, bạn có thể kiểm tra HHH-2616here.

Hoặc bạn thực hiện các trình lắng nghe này hoặc giải pháp thay thế, bạn có thể buộc postUpdate được gọi là thay đổi một trường khác trên thực thể đó.

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