тут жесть, надо все исправлятб

This commit is contained in:
VictoriaPresnyakova 2023-04-02 22:48:05 +04:00
parent 3f76f77e44
commit f9ffc7799c
5 changed files with 32 additions and 86 deletions

View File

@ -18,9 +18,8 @@ public class Component {
@Column(name = "amount") @Column(name = "amount")
private Integer amount; private Integer amount;
@OneToMany(mappedBy = "component", cascade = CascadeType.ALL, fetch = FetchType.EAGER) @ManyToMany(mappedBy = "component",fetch = FetchType.EAGER)
@JsonIgnore private List<Favor> favors;
private List<FavorComponents> favors;
public Component() { public Component() {
} }
@ -50,26 +49,18 @@ public class Component {
this.amount = amount; this.amount = amount;
} }
public List<FavorComponents> getFavors() { public List<Favor> getFavors() {
return favors; return favors;
} }
public void setFavors(List<FavorComponents> favors) { public void setFavors(Favor favors) {
this.favors = favors;
}
public void addFavor(FavorComponents favorComponents) { if(!favors.getComponents().contains(this)){
if (favors == null) { favors.getComponents().add(this);
favors = new ArrayList<>();
} }
if (!favors.contains(favorComponents))
this.favors.add(favorComponents);
} }
public void removeFavor(FavorComponents favorComponents) {
if (favors.contains(favorComponents))
this.favors.remove(favorComponents);
}
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {

View File

@ -18,12 +18,11 @@ public class Favor {
@Column(name = "price") @Column(name = "price")
private Integer price; private Integer price;
@OneToMany(mappedBy = "favor", cascade = CascadeType.ALL, fetch = FetchType.EAGER) @ManyToMany(mappedBy = "favor", fetch = FetchType.EAGER)
private List<FavorComponents> components; private List<Component> components;
@OneToMany(mappedBy = "favor", cascade = CascadeType.ALL, fetch = FetchType.EAGER) @ManyToMany(mappedBy = "favor", fetch = FetchType.EAGER)
@JsonIgnore private List<Order> orders;
private List<OrderFavors> orders;
public Favor() { public Favor() {
@ -55,12 +54,14 @@ public class Favor {
this.price = price; this.price = price;
} }
public List<FavorComponents> getComponents() { public List<Component> getComponents() {
return components; return components;
} }
public void setComponents(List<FavorComponents> components) { public void setComponents(Component components) {
this.components = components; if (! components.getFavors().contains(this)){
components.getFavors().add(this);
}
} }
public void update(Favor favor){ public void update(Favor favor){
@ -69,37 +70,16 @@ public class Favor {
this.components = favor.getComponents(); this.components = favor.getComponents();
} }
public void addComponent(FavorComponents favorComponents){
if (components == null){
this.components = new ArrayList<>();
}
if (!components.contains(favorComponents))
this.components.add(favorComponents);
}
public void removeComponent(FavorComponents favorComponents){
if (components.contains(favorComponents))
this.components.remove(favorComponents);
}
public List<OrderFavors> getOrders() { public List<Order> getOrders() {
return orders; return orders;
} }
public void setOrders(List<OrderFavors> orders) { public void setOrders(Order orders) {
this.orders = orders; if (! orders.getFavors().contains(this)){
} orders.getFavors().add(this);
public void addOrder(OrderFavors orderFavors){
if (orders == null){
orders = new ArrayList<>();
} }
if (!orders.contains(orderFavors))
this.orders.add(orderFavors);
} }
public void removeOrder(OrderFavors orderFavors){
if (orders.contains(orderFavors))
this.orders.remove(orderFavors);
}
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {

View File

@ -16,8 +16,8 @@ public class Order {
private Long id; private Long id;
@Column(name = "date") @Column(name = "date")
private Date date; private Date date;
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL, fetch = FetchType.EAGER) @ManyToMany(fetch = FetchType.EAGER)
private List<OrderFavors> favors; private List<Favor> favors;
public Order(){ public Order(){
} }
@ -43,26 +43,25 @@ public class Order {
} }
public List<OrderFavors> getFavors() { public List<Favor> getFavors() {
return favors; return favors;
} }
public void setFavors(List<OrderFavors> favors) { public void setFavors(List<Favor> favors) {
this.favors = favors; this.favors = favors;
} }
public void addFavor(OrderFavors orderFavors){ public void addFavor(Favor orderFavors){
if (favors == null){ if (favors == null){
this.favors = new ArrayList<>(); this.favors = new ArrayList<>();
} }
if (!favors.contains(orderFavors)) favors.add(orderFavors);
this.favors.add(orderFavors); if (!orderFavors.getOrders().contains(this)){
} orderFavors.setOrders(this);
public void removeFavors(OrderFavors orderFavors){ }
if (favors.contains(orderFavors))
this.favors.remove(orderFavors);
} }
@Override @Override
public boolean equals(Object o) { public boolean equals(Object o) {
if (this == o) return true; if (this == o) return true;

View File

@ -44,18 +44,6 @@ public class ComponentService {
.getResultList(); .getResultList();
} }
@Transactional(readOnly = true)
public List<Component> findFiltredComponents(Long[] arr) {
if (arr.length == 0) {
throw new IllegalArgumentException("Array id is empty");
}
List<Component> componentList = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
componentList.add(em.find(Component.class, arr[i]));
}
return componentList;
}
@Transactional @Transactional
public Component updateComponent(Long id, String componentName, Integer amount) { public Component updateComponent(Long id, String componentName, Integer amount) {
if (!StringUtils.hasText(componentName) || amount == 0) { if (!StringUtils.hasText(componentName) || amount == 0) {
@ -71,18 +59,11 @@ public class ComponentService {
public Component deleteComponent(Long id) { public Component deleteComponent(Long id) {
final Component currentComponent = findComponent(id); final Component currentComponent = findComponent(id);
int size = currentComponent.getFavors().size(); int size = currentComponent.getFavors().size();
for (int i = 0; i < size; i++) {
FavorComponents temp = currentComponent.getFavors().get(0);
temp.getComponent().removeFavor(temp);
temp.getFavor().removeComponent(temp);
em.remove(temp);
}
em.remove(currentComponent); em.remove(currentComponent);
return currentComponent; return currentComponent;
} }
@Transactional @Transactional
public void deleteAllComponent() { public void deleteAllComponent() {
em.createQuery("delete from FavorComponents").executeUpdate();
em.createQuery("delete from Component").executeUpdate(); em.createQuery("delete from Component").executeUpdate();
} }
} }

View File

@ -28,12 +28,7 @@ public class FavorService {
} }
final Favor favor = new Favor(favorName, price); final Favor favor = new Favor(favorName, price);
em.persist(favor); em.persist(favor);
for (int i = 0; i < components.size(); i++) {
final FavorComponents favorComponents = new FavorComponents(components.get(i), favor, count[i]);
favor.addComponent(favorComponents);
components.get(i).addFavor(favorComponents);
em.persist(favorComponents);
}
return favor; return favor;
} }