Saya punya model yang terlihat seperti:
class Case
{
public virtual ISet<CaseToCaseTag> CaseTags { get; set; }
public virtual DateTime LastModified { get; set; }
}
class CaseToCaseTag
{
public virtual Case Left { get; set; }
}
Saat mengaudit hubungan ini dengan envers, saya mengalami masalah dengan pelacakan properti yang dimodifikasi saat menghapus nilai dari kumpulan.
Jika satu-satunya hal yang saya ubah dalam entitas kasus saat menghapus nilai dari himpunan adalah "penghapusan set" maka envers melacak dengan benar bahwa properti CaseTags
diubah dalam revisi. Namun, jika saya juga mengubah properti lain, misalnya properti LastModified
, saya tidak menyetel tanda CaseTags_MOD dengan benar.
Saya telah melacaknya (menurut saya) ke metode AuditProcess.AddWorkUnit
. Ketika saya hanya menghapus dari set hanya satu WorkUnit
yang ditambahkan (a CollectionChangeWorkUnit
), tetapi ketika saya juga mengubah properti lain, WorkUnit
lainnya (a ModWorkUnit
) juga ditambahkan.
Apa yang tampaknya terjadi kemudian adalah CollectionChangeWorkUnit
dibuang dan digantikan dengan ModWorkUnit
, yang pada gilirannya tidak mengambil perubahan pada koleksi.
Apakah yang saya coba lakukan tidak didukung, atau adakah cara lain?