diff --git a/repeated-dislikes/src/main/kotlin/org/jesperancinha/repeateddislikes/fix/domain/Domain.kt b/repeated-dislikes/src/main/kotlin/org/jesperancinha/repeateddislikes/fix/domain/Domain.kt index a92d217..09d25e5 100644 --- a/repeated-dislikes/src/main/kotlin/org/jesperancinha/repeateddislikes/fix/domain/Domain.kt +++ b/repeated-dislikes/src/main/kotlin/org/jesperancinha/repeateddislikes/fix/domain/Domain.kt @@ -2,24 +2,31 @@ package org.jesperancinha.repeateddislikes.fix.domain import jakarta.persistence.* -import java.util.UUID +import java.util.* -const val SCHEMA_BAD = "fix" +const val SCHEMA = "fix" -@Table(name = "users", schema = SCHEMA_BAD) +@Table(name = "users", schema = SCHEMA) @Entity data class User( @Id @GeneratedValue(strategy = GenerationType.UUID) val id: UUID, val name: String, - @OneToMany(cascade = [CascadeType.DETACH], fetch = FetchType.LAZY) + @OneToMany(cascade = [CascadeType.DETACH], fetch = FetchType.EAGER) + @JoinTable( + schema = SCHEMA, + name = "USERS_RECEIPTS" + ) val receipts: List, - @OneToMany(cascade = [CascadeType.DETACH], fetch = FetchType.LAZY) - val shops: List + @OneToMany(cascade = [CascadeType.DETACH], fetch = FetchType.EAGER) + @JoinTable( + schema = SCHEMA, + name = "USERS_SHOPS" + )val shops: List ) -@Table(name = "receipts", schema = SCHEMA_BAD) +@Table(name = "receipts", schema = SCHEMA) @Entity data class Receipt( @Id @@ -33,7 +40,7 @@ data class Receipt( -@Table(name = "shops", schema = SCHEMA_BAD) +@Table(name = "shops", schema = SCHEMA) @Entity data class Shop( @Id diff --git a/repeated-dislikes/src/main/resources/data.sql b/repeated-dislikes/src/main/resources/data.sql index 9d49f6a..ee21a3a 100644 --- a/repeated-dislikes/src/main/resources/data.sql +++ b/repeated-dislikes/src/main/resources/data.sql @@ -7,7 +7,7 @@ insert into BAD.SHOPS (NAME) values ('Cats Para Dice'); SET @receipt1=random_uuid(); SET @receipt2=random_uuid(); -SET @userid=select ID from BAD.USERS WHERE NAME = 'CatOne'; +SET @userid=(select ID from BAD.USERS WHERE NAME = 'CatOne'); insert into BAD.RECEIPTS (ID, USER_ID, SHOP_ID) values (@receipt1, @userid, (select ID from BAD.SHOPS WHERE NAME = 'Cats Para Dice') @@ -61,7 +61,7 @@ insert into BADFIX.SHOPS (NAME) values ('Cats Para Dice BadFix'); SET @receipt1=random_uuid(); SET @receipt2=random_uuid(); -SET @userid=select ID from BADFIX.USERS WHERE NAME = 'CatOne BadFix'; +SET @userid=(select ID from BADFIX.USERS WHERE NAME = 'CatOne BadFix'); insert into BADFIX.RECEIPTS (ID, USER_ID, SHOP_ID) values (@receipt1, @userid, (select ID from BADFIX.SHOPS WHERE NAME = 'Cats Para Dice BadFix') @@ -89,12 +89,15 @@ values (random_uuid(), @userid, truncate table FIX.USERS; truncate table FIX.SHOPS; truncate table FIX.RECEIPTS; +truncate table FIX.USERS_RECEIPTS; +truncate table FIX.USERS_SHOPS; insert into FIX.USERS (ID, NAME) values (random_uuid(), 'CatOne'); insert into FIX.SHOPS (ID, NAME) values (random_uuid(), 'Cats Para Dice'); SET @receipt3=random_uuid(); SET @receipt4=random_uuid(); +SET @userid=(select ID from FIX.USERS WHERE NAME = 'CatOne'); insert into FIX.RECEIPTS (ID, USER_ID, SHOP_ID) values (@receipt3, (select ID from FIX.USERS WHERE NAME = 'CatOne'), @@ -105,3 +108,10 @@ values (@receipt4, (select ID from FIX.USERS WHERE NAME = 'CatOne'), (select ID from FIX.SHOPS WHERE NAME = 'Cats Para Dice') ); +SET @shopId=(select ID from FIX.SHOPS WHERE NAME = 'Cats Para Dice'); +insert into FIX.USERS_RECEIPTS(USER_ID, RECEIPTS_ID) +values (@userid,@receipt3); +insert into FIX.USERS_RECEIPTS(USER_ID, RECEIPTS_ID) +values (@userid,@receipt4); +insert into FIX.USERS_SHOPS(USER_ID, SHOPS_ID) +values (@userid,@shopId); diff --git a/repeated-dislikes/src/main/resources/schema.sql b/repeated-dislikes/src/main/resources/schema.sql index 161a0c0..153fde0 100644 --- a/repeated-dislikes/src/main/resources/schema.sql +++ b/repeated-dislikes/src/main/resources/schema.sql @@ -18,6 +18,8 @@ DROP TABLE IF EXISTS FIX.RECEIPTS; DROP TABLE IF EXISTS FIX.SHOPS; +DROP TABLE IF EXISTS FIX.USERS_RECEIPTS; + CREATE TABLE IF NOT EXISTS BAD.BAD_DISLIKES_RELATIONS ( id UUID NOT NULL DEFAULT random_uuid() PRIMARY KEY, @@ -95,3 +97,18 @@ CREATE TABLE IF NOT EXISTS FIX.SHOPS id UUID NOT NULL DEFAULT random_uuid() PRIMARY KEY, name VARCHAR(255) NOT NULL ); + + +CREATE TABLE IF NOT EXISTS FIX.USERS_RECEIPTS +( + id UUID NOT NULL DEFAULT random_uuid() PRIMARY KEY, + user_id UUID, + receipts_id UUID +); + +CREATE TABLE IF NOT EXISTS FIX.USERS_SHOPS +( + id UUID NOT NULL DEFAULT random_uuid() PRIMARY KEY, + user_id UUID, + shops_id UUID +);