คำถามติดแท็ก cascade

6
CascadeType.ALL มีความหมายอย่างไรสำหรับสมาคม @ManyToOne JPA
ฉันคิดว่าฉันเข้าใจความหมายของการเรียงซ้อนในบริบทของ@ManyToOneความสัมพันธ์ กรณี: public class User { @OneToMany(fetch = FetchType.EAGER) protected Set<Address> userAddresses; } public class Address { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) protected User addressOwner; } ความหมายของcascade = CascadeType.ALLคืออะไร? ตัวอย่างเช่นหากฉันลบที่อยู่บางอย่างจากฐานข้อมูลความจริงที่ว่าฉันเพิ่มที่cascade = CascadeType.ALLมีผลต่อข้อมูลของฉัน (ที่Userฉันเดา)?

8
JPA orphanRemoval = true แตกต่างจากส่วนคำสั่ง ON DELETE CASCADE DML อย่างไร
ฉันสับสนเล็กน้อยเกี่ยวกับorphanRemovalแอตทริบิวต์JPA 2.0 ฉันคิดว่าฉันสามารถเห็นมันเป็นสิ่งจำเป็นเมื่อฉันใช้เครื่องมือการสร้างฐานข้อมูล JPA ของผู้ให้บริการเพื่อสร้าง DDL ฐานข้อมูลพื้นฐานเพื่อให้มีON DELETE CASCADEความสัมพันธ์เฉพาะ อย่างไรก็ตามถ้าฐานข้อมูลมีอยู่และมีON DELETE CASCADEความสัมพันธ์กันอยู่แล้วสิ่งนี้ไม่เพียงพอที่จะลดการลบอย่างเหมาะสมหรือไม่? สิ่งที่orphanRemovalนอกเหนือไปจากนี้? ไชโย

3
วิธีเพิ่มข้อ จำกัด “ เมื่อลบแบบเรียงซ้อน”?
ใน PostgreSQL 8 เป็นไปได้หรือไม่ที่จะเพิ่มON DELETE CASCADESไปยังคีย์ต่างประเทศทั้งสองในตารางต่อไปนี้ # \d scores Table "public.scores" Column | Type | Modifiers ---------+-----------------------+----------- id | character varying(32) | gid | integer | money | integer | not null quit | boolean | last_ip | inet | Foreign-key constraints: "scores_gid_fkey" FOREIGN KEY (gid) REFERENCES games(gid) "scores_id_fkey" FOREIGN …

2
SQL ON DELETE CASCADE การลบเกิดขึ้นแบบไหน?
ถ้าฉันมีสองความสัมพันธ์ในฐานข้อมูลเช่นนี้ CREATE TABLE Courses ( CourseID int NOT NULL PRIMARY KEY, Course VARCHAR(63) NOT NULL UNIQUE, Code CHAR(4) NOT NULL UNIQUE ); CREATE TABLE BookCourses ( EntryID int NOT NULL PRIMARY KEY, BookID int NOT NULL, Course CHAR(4) NOT NULL, CourseNum CHAR(3) NOT NULL, CourseSec CHAR(1) NOT NULL ); และฉันสร้างความสัมพันธ์สำคัญต่างประเทศระหว่างสองเช่นนี้ …

15
เมื่อใด / เพราะเหตุใดจึงใช้ Cascading ใน SQL Server
เมื่อตั้งค่าคีย์ต่างประเทศใน SQL Server ภายใต้สถานการณ์ใดที่คุณควรให้มันเป็นลบหรือปรับปรุงและเหตุผลที่อยู่เบื้องหลังมันคืออะไร? อาจใช้กับฐานข้อมูลอื่นเช่นกัน ฉันกำลังมองหาตัวอย่างที่เป็นรูปธรรมมากที่สุดของแต่ละสถานการณ์โดยเฉพาะอย่างยิ่งจากคนที่ใช้พวกเขาสำเร็จ

1
cascade = {“ remove”} VS orphanRemoval = true VS ondelete = "CASCADE
ฉันพยายามรวบรวมข้อมูลบางอย่างเกี่ยวกับวิธีต่อไปนี้เพื่อลบเอนทิตีลูกโดยอัตโนมัติเมื่อเอนทิตีแม่ถูกลบ ดูเหมือนว่าวิธีที่พบมากที่สุดคือการใช้หนึ่งในบรรดาสามคำอธิบายประกอบ: น้ำตก = { "ลบ"}หรือorphanRemoval = trueหรือondelete = "น้ำตก" ฉันสับสนเล็กน้อยเกี่ยวกับข้อที่สาม: ondelete = "CASCADE"เนื่องจากคำอธิบายในเอกสารอย่างเป็นทางการของหลักคำสอนเกี่ยวกับเรื่องนี้หายากมาก) และฉันจะชอบถ้ามีคนยืนยันข้อมูลต่อไปนี้ที่ฉันรวบรวมและเข้าใจจากการวิจัยของฉันเกี่ยวกับ สุทธิและประสบการณ์ ... มันทำอะไร cascade = {"remove"} ==> เอนทิตีทางด้านผกผันจะถูกลบเมื่อเอนทิตีฝั่งเจ้าของคือ แม้ว่าคุณจะอยู่ในหลายกลุ่มที่มีเอนทิตีด้านการเป็นเจ้าของอื่น - ควรใช้ในการรวบรวม (ดังนั้นในความสัมพันธ์ OneToMany หรือ ManyToMany) - การใช้งานใน ORM orphanRemoval = true ==> เอนทิตีที่อยู่ด้านผกผันจะถูกลบเมื่อเอนทิตีฝั่งเจ้าของคือและไม่ได้เชื่อมต่อกับเอนทิตีฝั่งที่เป็นเจ้าของอื่น ๆ อีกต่อไป (อ้างอิง คำสอน official_doc - การนำไปใช้ใน ORM - สามารถใช้ได้กับ OneToOne, OnetoMany …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.