9
ฉันจะทำให้ความสัมพันธ์ JPA OneToOne ขี้เกียจได้อย่างไร
ในแอปพลิเคชันนี้เรากำลังพัฒนาเราสังเกตว่ามุมมองนั้นช้าเป็นพิเศษ ฉันทำมุมมองและสังเกตว่ามีหนึ่งแบบสอบถามดำเนินการโดยจำศีลซึ่งใช้เวลา 10 วินาทีแม้ว่าจะมีเพียงสองวัตถุในฐานข้อมูลเพื่อดึงข้อมูล ทั้งหมดOneToManyและManyToManyความสัมพันธ์ที่มีความขี้เกียจเพื่อให้เป็นไม่ได้เป็นปัญหา เมื่อตรวจสอบ SQL ที่เกิดขึ้นจริงฉันสังเกตว่ามีการรวมมากกว่า 80 รายการในแบบสอบถาม การตรวจสอบเพิ่มเติมปัญหาฉันสังเกตเห็นว่าปัญหาเกิดจากลำดับชั้นลึกOneToOneและManyToOneความสัมพันธ์ระหว่างคลาสเอนทิตี้ ดังนั้นฉันคิดว่าฉันจะทำให้พวกเขาขี้เกียจที่จะแก้ปัญหา แต่คำอธิบายประกอบอย่างใดอย่างหนึ่ง@OneToOne(fetch=FetchType.LAZY)หรือ@ManyToOne(fetch=FetchType.LAZY)ดูเหมือนจะไม่ทำงาน ทั้งฉันได้รับข้อยกเว้นหรือไม่พวกเขาจะไม่ถูกแทนที่ด้วยวัตถุพร็อกซีและทำให้ขี้เกียจ ความคิดใดที่ฉันจะทำให้มันทำงานได้? โปรดทราบว่าฉันไม่ได้ใช้persistence.xmlเพื่อกำหนดความสัมพันธ์หรือรายละเอียดการกำหนดค่าทุกอย่างจะทำในรหัสจาวา