คอลัมน์ที่แก้ไขแล้วของ Nhibernate ไม่สามารถติดตามการลบออกจากคอลเลกชันได้อย่างถูกต้อง

ฉันมีรุ่นที่ดูเหมือน:

class Case
{
    public virtual ISet<CaseToCaseTag> CaseTags { get; set; }
    public virtual DateTime LastModified { get; set; }
}

class CaseToCaseTag
{
    public virtual Case Left { get; set; }
}

เมื่อตรวจสอบความสัมพันธ์นี้กับ envers ฉันประสบปัญหากับการติดตามคุณสมบัติที่แก้ไขเมื่อลบค่าออกจากชุด

หาก สิ่งเดียวที่ สิ่งที่ฉันเปลี่ยนแปลงใน case-entity เมื่อลบค่าออกจากชุดคือ "set-removal" จากนั้นจะเข้ารหัสการติดตามอย่างถูกต้องว่าคุณสมบัติ CaseTags ได้รับการแก้ไขในการแก้ไข อย่างไรก็ตาม หากฉันเปลี่ยนคุณสมบัติอื่นๆ เช่น คุณสมบัติ LastModified ฉันจะไม่ได้รับการตั้งค่าแฟล็ก CaseTags_MOD อย่างถูกต้อง

ฉันได้ติดตามสิ่งนี้ (ฉันคิดว่า) ไปยังวิธี AuditProcess.AddWorkUnit เมื่อฉันลบออกจากชุด จะมีการเพิ่ม WorkUnit เพียงหนึ่งรายการเท่านั้น (a CollectionChangeWorkUnit) แต่เมื่อฉันเปลี่ยนคุณสมบัติอื่นด้วย ก็จะมีการเพิ่ม WorkUnit (a ModWorkUnit) อีกรายการหนึ่งด้วย

สิ่งที่ดูเหมือนจะเกิดขึ้นคือ CollectionChangeWorkUnit ถูกละทิ้งไปแทน ModWorkUnit ซึ่งจะไม่รับการเปลี่ยนแปลงในคอลเลกชัน

สิ่งที่ฉันกำลังพยายามไม่รองรับหรือมีวิธีแก้ไขหรือไม่


person aeliusd    schedule 17.11.2015    source แหล่งที่มา


คำตอบ (1)


เสียงเหมือนแมลง โปรดสร้างคำขอดึงที่มีการแมปน้อยที่สุดเพื่อทำให้เกิดปัญหาอีกครั้ง

person Roger    schedule 18.11.2015
comment
เยี่ยมมาก ฉันอยู่ในขั้นตอนการแยก repo จะยื่นขอดึงระหว่างวัน - person aeliusd; 18.11.2015
comment
คำขอดึงของคุณได้รับการผสานและแก้ไขแล้ว nhibernate.jira.com/projects/NHE/ ปัญหา/NHE-146 - person Roger; 19.11.2015