From d7c76bf9c56885d47e20ba2e3bf45aa7589873a9 Mon Sep 17 00:00:00 2001 From: Satindar Dhillon Date: Fri, 13 Jan 2023 10:54:57 -0800 Subject: [PATCH] add foreign keys to cross ref tables --- .../omnivore/persistence/entities/Highlight.kt | 18 +++++++++++++++++- .../persistence/entities/SavedItemLabel.kt | 18 +++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/Highlight.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/Highlight.kt index fcfb76ba6..31ecae2cd 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/Highlight.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/Highlight.kt @@ -24,7 +24,23 @@ data class Highlight( // has a UserProfile (no inverse) ) -@Entity(primaryKeys = ["highlightId", "savedItemId"]) +@Entity( + primaryKeys = ["highlightId", "savedItemId"], + foreignKeys = [ + ForeignKey( + entity = Highlight::class, + parentColumns = arrayOf("highlightId"), + childColumns = arrayOf("highlightId"), + onDelete = ForeignKey.CASCADE + ), + ForeignKey( + entity = SavedItem::class, + parentColumns = arrayOf("savedItemId"), + childColumns = arrayOf("savedItemId"), + onDelete = ForeignKey.CASCADE + ) + ] +) data class SavedItemAndHighlightCrossRef( val highlightId: String, val savedItemId: String diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/SavedItemLabel.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/SavedItemLabel.kt index 512c1c564..ea3b3aa40 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/SavedItemLabel.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/persistence/entities/SavedItemLabel.kt @@ -18,7 +18,23 @@ interface SavedItemLabelDao { fun insertAll(items: List) } -@Entity(primaryKeys = ["savedItemLabelId", "savedItemId"]) +@Entity( + primaryKeys = ["savedItemLabelId", "savedItemId"], + foreignKeys = [ + ForeignKey( + entity = SavedItem::class, + parentColumns = arrayOf("savedItemId"), + childColumns = arrayOf("savedItemId"), + onDelete = ForeignKey.CASCADE + ), + ForeignKey( + entity = SavedItemLabel::class, + parentColumns = arrayOf("savedItemLabelId"), + childColumns = arrayOf("savedItemLabelId"), + onDelete = ForeignKey.CASCADE + ) + ] +) data class SavedItemAndSavedItemLabelCrossRef( val savedItemLabelId: String, val savedItemId: String