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

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

View File

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

View File

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

View File

@ -44,18 +44,6 @@ public class ComponentService {
.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
public Component updateComponent(Long id, String componentName, Integer amount) {
if (!StringUtils.hasText(componentName) || amount == 0) {
@ -71,18 +59,11 @@ public class ComponentService {
public Component deleteComponent(Long id) {
final Component currentComponent = findComponent(id);
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);
return currentComponent;
}
@Transactional
public void deleteAllComponent() {
em.createQuery("delete from FavorComponents").executeUpdate();
em.createQuery("delete from Component").executeUpdate();
}
}

View File

@ -28,12 +28,7 @@ public class FavorService {
}
final Favor favor = new Favor(favorName, price);
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;
}