การส่งเสริม
มหาวิทยาลัยโค้ดยิม
การเรียนรู้
คอร์ส
งาน
แบบสำรวจและแบบทดสอบ
เกม
ช่วย
กำหนดการ
ชุมชน
ผู้ใช้
ฟอรั่ม
แชท
บทความ
เรื่องราวความสำเร็จ
กิจกรรม
บทวิจารณ์
การสมัครรับข้อมูล
ธีมสว่าง
บทเรียน
บทวิจารณ์
เกี่ยวกับเรา
เริ่ม
เริ่มเรียนรู้
เริ่มเรียนรู้เลย
แผนที่เควส
บทเรียน
ระดับ 15
การทำงานกับลำดับชั้นของเอนทิตี
SQL & Hibernate
ระดับ ,
บทเรียน
ปัญหาการอนุรักษ์ วันนี้เราจะมีโครงร่างใหม่และน่าสนใจอย่างยิ่ง - โดยใช้คุณสมบัติไฮเบอร์เนตเพื่อบันทึกลำดับชั้นของคลาสลงในฐานข้อมูล ลำดับชั้นของคลาสคือชุดของคลาสที่เกี่ยวข้องกันโดยความสัมพันธ์แบบสืบทอด ลองนึกภาพว่าคุณมีสามคลาสที่คุณต้องการจัด
ตารางเดียวสำหรับลำดับชั้นทั้งคลาส
SQL & Hibernate
ระดับ ,
บทเรียน
คำอธิบาย วิธีถัดไปในการจัดเก็บลำดับชั้นของคลาสคือการจัดเก็บคลาสทั้งหมดในลำดับชั้นไว้ในตารางเดียว กลยุทธ์นี้เรียกว่าSingle Table ตัวอย่างเช่น: CREATE TABLE user_ employee_client {
ผู้เลือกปฏิบัติ
SQL & Hibernate
ระดับ ,
บทเรียน
คำอธิบาย ในบทที่แล้ว คุณเห็นว่า Hibernate ใช้คอลัมน์ DTYPE VARCHAR พิเศษเพื่อจัดเก็บชื่อของคลาสเอนทิตี คอลัมน์ดังกล่าวเรียกว่าdiscriminator ใช้เพื่อกำหนดคลาสที่จะสร้างสำหรับแถวที่กำหนดในฐานข้อมูลอย่างชัดเจน คุณสามารถจัดการคอลัมน์นี้ด้วยคำ อ
ตารางที่เข้าร่วม
SQL & Hibernate
ระดับ ,
บทเรียน
คำอธิบาย อีกกลยุทธ์หนึ่งสำหรับการจัดเก็บลำดับชั้นของคลาสในฐานข้อมูลเรียกว่าตารางที่เข้าร่วม มีคำอธิบายประกอบพิเศษสำหรับมัน: @Inheritance(strategy = InheritanceType.JOINED) ตัวอย่างชั้นเรียนของเรา: @Inheritance(strategy = InheritanceType.JOI
ตารางต่อชั้นเรียน
SQL & Hibernate
ระดับ ,
บทเรียน
5.1 คำอธิบาย และสุดท้าย กลยุทธ์สุดท้ายคือตารางต่อชั้นเรียน หมายความว่าจะใช้ตารางแยกต่างหากสำหรับแต่ละชั้นเรียน ในแง่หนึ่ง นี่คือ MappedSuperClass เดียวกัน ในรูปแบบที่อัปเดตเท่านั้น ขั้นแรก คุณต้องใช้คำอธิบายประกอบ: @Inheritance(strategy = I
การเลือกกลยุทธ์การรักษาลำดับชั้น
SQL & Hibernate
ระดับ ,
บทเรียน
คำอธิบาย แต่ละกลยุทธ์และเทคนิคข้างต้นมีข้อดีและข้อเสียในตัวเอง คำแนะนำทั่วไปสำหรับการเลือกกลยุทธ์เฉพาะจะมีลักษณะดังนี้: กลยุทธ์ TABLE_PER_CLASS ขึ้นอยู่กับ UNION กลยุทธ์นี้เหมาะที่สุดหากไม่ต้องการการสืบค้นและการเชื่อมโยงที่หลากหลาย หากคุณไม
Please enable JavaScript to continue using this application.