diff --git a/data.mv.db b/data.mv.db index 46f4602..37c20ac 100644 Binary files a/data.mv.db and b/data.mv.db differ diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/model/Component.java b/src/main/java/ru/ulstu/is/sbapp/repair/model/Component.java index d56229b..e1b3f74 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/model/Component.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/model/Component.java @@ -1,7 +1,5 @@ package ru.ulstu.is.sbapp.repair.model; -import com.fasterxml.jackson.annotation.JsonIgnore; - import javax.persistence.*; import java.util.ArrayList; import java.util.List; @@ -18,18 +16,18 @@ public class Component { @Column(name = "amount") private Integer amount; - @ManyToMany(mappedBy = "componentsList") - private List favorsList; + @ManyToMany(fetch = FetchType.EAGER, mappedBy = "componentsList", cascade = CascadeType.REMOVE) + private List favorsListFromComponents; public Component() { - favorsList = new ArrayList<>(); + favorsListFromComponents = new ArrayList<>(); } public Component(String componentName, Integer amount) { this.componentName = componentName; this.amount = amount; - favorsList = new ArrayList<>(); + favorsListFromComponents = new ArrayList<>(); } public Long getId() { @@ -53,14 +51,14 @@ public class Component { } public List getFavors() { - return favorsList; + return favorsListFromComponents; } public void addFavor(Favor favor) { - if (favorsList == null) - favorsList = new ArrayList<>(); - if (!favorsList.contains(favor)){ - favorsList.add(favor); + if (favorsListFromComponents == null) + favorsListFromComponents = new ArrayList<>(); + if (!favorsListFromComponents.contains(favor)){ + favorsListFromComponents.add(favor); } if (!favor.getComponents().contains(this)) { favor.addComponent(this); diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java b/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java index 913141c..d4017d1 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/model/Favor.java @@ -1,6 +1,8 @@ package ru.ulstu.is.sbapp.repair.model; import com.fasterxml.jackson.annotation.JsonIgnore; +import org.hibernate.annotations.LazyCollection; +import org.hibernate.annotations.LazyCollectionOption; import javax.persistence.*; import java.util.ArrayList; @@ -18,10 +20,11 @@ public class Favor { @Column(name = "price") private Integer price; - @ManyToMany(fetch = FetchType.EAGER, mappedBy = "favorsList") + @ManyToMany(fetch = FetchType.EAGER) private List ordersList; - @ManyToMany //(fetch = FetchType.EAGER) + @ManyToMany + @LazyCollection(LazyCollectionOption.FALSE) private List componentsList; public Favor() { diff --git a/src/main/java/ru/ulstu/is/sbapp/repair/model/Order.java b/src/main/java/ru/ulstu/is/sbapp/repair/model/Order.java index f3ede88..3da0ffe 100644 --- a/src/main/java/ru/ulstu/is/sbapp/repair/model/Order.java +++ b/src/main/java/ru/ulstu/is/sbapp/repair/model/Order.java @@ -17,10 +17,7 @@ public class Order { @Column(name = "date") private Date date; - @ManyToMany (fetch = FetchType.EAGER) - @JoinTable(name = "order_favor", - joinColumns = @JoinColumn(name = "order_fk"), - inverseJoinColumns = @JoinColumn(name = "favor_fk")) + @ManyToMany (fetch = FetchType.EAGER, mappedBy = "ordersList", cascade = CascadeType.REMOVE) private List favorsList; public Order(){ diff --git a/src/test/java/ru/ulstu/is/sbapp/SbappApplicationTests.java b/src/test/java/ru/ulstu/is/sbapp/SbappApplicationTests.java index 265f695..347fca2 100644 --- a/src/test/java/ru/ulstu/is/sbapp/SbappApplicationTests.java +++ b/src/test/java/ru/ulstu/is/sbapp/SbappApplicationTests.java @@ -26,13 +26,15 @@ class SbappApplicationTests { @Test void testOrder(){ componentService.deleteAllComponent(); - //orderService.deleteAllOrder(); - //favorService.deleteAllFavor(); why? + orderService.deleteAllOrder(); + favorService.deleteAllFavor(); final Favor favor = favorService.addFavor("Favor1", 100); final Order order0 = orderService.addOrder("11.02.2023"); final Order order1 = orderService.findOrder(order0.getId()); + final Component component1 = componentService.addComponent("comp", 10); + favor.addComponent(component1); Assertions.assertEquals(order0, order1); orderService.addFavorToOrder(order0.getId(), favor); @@ -58,7 +60,7 @@ class SbappApplicationTests { favorService.addComponentToFavor(favor0.getId(), component); Assertions.assertEquals(favorService.findFavor(favor0.getId()).getComponents().size(), 1); - //Assertions.assertEquals(componentService.findComponent(component.getId()).getFavor(), favor0); + Assertions.assertEquals(componentService.findComponent(component.getId()).getFavors().size(), 1); favorService.deleteFavor(favor0.getId()); Assertions.assertThrows(EntityNotFoundException.class, () -> favorService.findFavor(favor0.getId()));