メディエータークラスでのエンヴェール(歴史的創造者)の適用に疑問を持っています。
問題は、リレーション内のオブジェクトが値を変更したときにメディエーター クラスで監査を適用する方法です。
たとえば、私のクラス ProjectMediator では、次のような状況があります。
@Entity
@NamedQueries({
@NamedQuery(name = "ProjectMediator.findProjectMediatorByIdProject",
query = "SELECT pm FROM ProjectMediator pm WHERE pm.project.id = :idProject")
})
@Audited
public class ProjetMediator implements Serializable {
private static final long serialVersionUID = 1L;
public static final String FIND_PROJECT_BY_ID_PROJECTMEDIATOR = "ProjectMediator.findProjectMediatorByIdProject";
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToOne
@JoinColumn(name="id_project")
private Project project;
@ManyToMany( targetEntity=Task.class, fetch=FetchType.LAZY )
private List<Task> tasks;
@ManyToMany( targetEntity=Activite.class, fetch=FetchType.LAZY )
private List<Acitvity> activities;
@ManyToMany( targetEntity=Phase.class, fetch=FetchType.LAZY )
private List<Phase> phases;
//get and sets }
また、フェーズ オブジェクトが値を変更したときに履歴を作成する必要があるため、履歴には ProjectMediator の ID、フェーズ ID、およびデータ フェーズが必要です。
そのようなものを作成する方法を知っている人はいますか?
どうもありがとう!!