ฉันเห็นว่า "เจ้าของ" เข้ามาที่ใด แต่การเชื่อมโยงเป็นท่อและคุณสามารถมองลงไปที่ปลายด้านใดด้านหนึ่งดังนั้นจะบอกว่าเอนทิตีใด "เป็นเจ้าของ" ไปป์
วิธีที่แตกต่างกันในการมองสิ่งนี้คือในความสัมพันธ์แบบหนึ่งต่อกลุ่มที่จริงมี 2 ความสัมพันธ์เกิดขึ้น
ความสัมพันธ์ 1: ผู้ปกครองกับเด็กหลายคน
ความสัมพันธ์ 2: เด็กแต่ละคนกับผู้ปกครอง
ดังนั้น NH จะพยายามรัน sql เพื่อเก็บสิ่งเหล่านี้ไว้ในฐานข้อมูล แต่ไม่จำเป็นต้องเป็นเพราะเมื่อคุณตั้ง Foreign Key เช่นในความสัมพันธ์ 2 เมื่อเด็กถูกเก็บไว้ระบบจะแก้ไขความสัมพันธ์ของผู้ปกครองกับเด็กโดยอัตโนมัติเช่นกันเนื่องจากความสัมพันธ์ 1 เป็น "ผกผัน" ของความสัมพันธ์ 2 .
หมายความว่าผกผันมันเป็นสิ่งที่เราได้รับโดยค่าเริ่มต้นเมื่อเราตั้งค่าความสัมพันธ์หลัก กล่าวคือไม่จำเป็นต้องให้ NH รัน sql เพื่อแก้ไขความสัมพันธ์ 1 และการทำเครื่องหมายคอลเลกชันเด็กเป็น Inverse NH จะข้ามการรัน sql เมื่อมีการเพิ่มคอลเล็กชันลูก
ฉันคิดว่าถ้าคุณไม่บอก NH ว่ามันเป็นอินเวอร์สก็จะเสียความพยายามในการทำ sql เพื่อพยายามกำหนดความสัมพันธ์แบบผกผันเช่นกันแม้ว่ามันจะไม่จำเป็นก็ตาม