From 973e2c6a164f6ec9482fb1dea7f9dabd5e71b1a5 Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Wed, 19 Apr 2023 19:35:44 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=BC?= =?UTF-8?q?=D0=BE=D0=B4=D0=B5=D0=BB=D0=B5=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/premium_store/model/GameClient.java | 13 ++--- .../main/java/premium_store/model/Nation.java | 19 ++++--- .../main/java/premium_store/model/Tank.java | 51 ++++--------------- .../java/premium_store/model/TankLevel.java | 13 +---- 4 files changed, 29 insertions(+), 67 deletions(-) diff --git a/spring_online_calculator/src/main/java/premium_store/model/GameClient.java b/spring_online_calculator/src/main/java/premium_store/model/GameClient.java index 12c7246..2c6e031 100644 --- a/spring_online_calculator/src/main/java/premium_store/model/GameClient.java +++ b/spring_online_calculator/src/main/java/premium_store/model/GameClient.java @@ -4,6 +4,7 @@ import javax.persistence.*; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; @Entity @Table(name = "GAMECLIENTS") @@ -21,8 +22,8 @@ public class GameClient { @Column(name = "balance") private Integer balance; - @ManyToMany(mappedBy = "gameClients", fetch= FetchType.EAGER) - private List tanks; + @OneToMany(fetch = FetchType.EAGER) + private List tanks = new ArrayList<>(); public GameClient(){ } @@ -30,7 +31,6 @@ public class GameClient { this.nickName = nickName; this.email = email; this.balance = balance; - tanks = new ArrayList<>(); } public Long getId(){ @@ -65,8 +65,8 @@ public class GameClient { return tanks; } - public void setTanks(List tanks){ - this.tanks = tanks; + public void setTanks(Tank tank){ + this.tanks.add(tank); } //метод для сравнения @@ -96,7 +96,8 @@ public class GameClient { ", nickName='" + nickName + '\'' + ", email='" + email + '\'' + ", balance='" + balance + '\'' + - ", tanks count='" + tanks.size() + '\'' + + ", tanks='" + tanks.stream().map(Object::toString).collect(Collectors.joining(", ")) + '\'' + '}'; } } + diff --git a/spring_online_calculator/src/main/java/premium_store/model/Nation.java b/spring_online_calculator/src/main/java/premium_store/model/Nation.java index c02d5a5..be5c222 100644 --- a/spring_online_calculator/src/main/java/premium_store/model/Nation.java +++ b/spring_online_calculator/src/main/java/premium_store/model/Nation.java @@ -2,6 +2,7 @@ package premium_store.model; import javax.persistence.*; import java.util.*; +import java.util.stream.Collectors; @Entity @Table(name = "NATIONS") @@ -13,8 +14,8 @@ public class Nation { @Column(name = "nation") private String nation; - @OneToMany(mappedBy ="nation", cascade = CascadeType.MERGE,fetch = FetchType.EAGER) - private List tanks = new ArrayList<>(); + @OneToMany(mappedBy = "nation", fetch = FetchType.EAGER, cascade = CascadeType.MERGE) + private List tanksOfThisNation = new ArrayList<>(); public Nation() { } @@ -37,13 +38,12 @@ public class Nation { this.nation = nation; } - public List getTanks(){ - return tanks; + public List getTanksOfThisNation(){ + return tanksOfThisNation; } - public void addNewTank(Tank tank) { - tanks.add(tank); - tank.setNation(this); + public void setTanksOfThisNation(Tank newTank){ + this.tanksOfThisNation.add(newTank); } //метод для сравнения @@ -70,6 +70,9 @@ public class Nation { public String toString() { return "Nation{" + "id=" + id + - ", nation='" + nation + '}'; + ", nation='" + nation + '\'' + + ", tanksOfThisNation='" + tanksOfThisNation.stream().map(Object::toString).collect(Collectors.joining(", ")) + '\'' + + '}'; } } + diff --git a/spring_online_calculator/src/main/java/premium_store/model/Tank.java b/spring_online_calculator/src/main/java/premium_store/model/Tank.java index 17024b8..eba61b0 100644 --- a/spring_online_calculator/src/main/java/premium_store/model/Tank.java +++ b/spring_online_calculator/src/main/java/premium_store/model/Tank.java @@ -2,9 +2,6 @@ package premium_store.model; import javax.persistence.*; import java.util.Objects; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; @Entity @Table(name = "TANKS") @@ -13,25 +10,20 @@ public class Tank { @GeneratedValue(strategy = GenerationType.AUTO) private Long id; - @Column(name = "name") + @Column(nullable = false) private String name; - @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE) + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "nation") private Nation nation; - @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.MERGE) + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name = "tankLevel") private TankLevel tankLevel; - @Column(name = "cost") + @Column(nullable = false) private int cost; - //реализация двунаправленной связи многие-ко-многим - @ManyToMany(fetch = FetchType.EAGER) - @JoinTable(name = "tanks_clients", - joinColumns = @JoinColumn(name = "tank_fk"), - inverseJoinColumns = @JoinColumn(name = "client_fk")) - private List gameClients; - public Tank() { } @@ -40,7 +32,6 @@ public class Tank { this.nation = nation; this.tankLevel = tankLevel; this.cost = cost; - gameClients = new ArrayList<>(); } public Long getId(){ @@ -79,28 +70,6 @@ public class Tank { this.nation = nation; } - public List getClients() { - return gameClients; - } - - public void setClients(List gameClients) { - this.gameClients = gameClients; - } - - public void addClient(GameClient newGameClient){ - if (gameClients == null){ - this.gameClients = new ArrayList<>(); - } - - if (!gameClients.contains(newGameClient)) - this.gameClients.add(newGameClient); - } - - public void removeClient(GameClient remGameClient){ - if (gameClients.contains(remGameClient)) - this.gameClients.remove(remGameClient); - } - @Override public boolean equals(Object o) { if (this == o) return true; @@ -108,7 +77,7 @@ public class Tank { if (!(o instanceof Tank tank)) return false; return Objects.equals(getId(), tank.getId()) && Objects.equals(getName(), tank.getName()) - && Objects.equals(getCost(), tank.getCost()) && Objects.equals(getClients(), tank.getClients()) + && Objects.equals(getCost(), tank.getCost()) && Objects.equals(getLevel(), tank.getLevel()); } @@ -123,10 +92,10 @@ public class Tank { return "Tank{" + "id=" + id + ", name='" + name + '\'' + - ", nation='" + nation + '\'' + - ", level='" + tankLevel + '\'' + + ", nation='" + nation.getNation() + '\'' + + ", level='" + tankLevel.getLevel() + '\'' + ", cost='" + cost + '\'' + - ", clients='" + gameClients.stream().map(Object::toString).collect(Collectors.joining(", ")) + '\'' + '}'; } } + diff --git a/spring_online_calculator/src/main/java/premium_store/model/TankLevel.java b/spring_online_calculator/src/main/java/premium_store/model/TankLevel.java index 0262065..f9b3253 100644 --- a/spring_online_calculator/src/main/java/premium_store/model/TankLevel.java +++ b/spring_online_calculator/src/main/java/premium_store/model/TankLevel.java @@ -13,9 +13,6 @@ public class TankLevel { @Column(name = "level", nullable = false) private int level; - @OneToMany(mappedBy = "tankLevel", cascade = CascadeType.MERGE, fetch = FetchType.EAGER) - private List tanksOfThisLevel = new ArrayList<>(); - public TankLevel() { } @@ -37,15 +34,6 @@ public class TankLevel { this.level = level; } - public List getTanks(){ - return tanksOfThisLevel; - } - - public void addNewTank(Tank tank) { - tanksOfThisLevel.add(tank); - tank.setLevel(this); - } - //метод для сравнения @Override public boolean equals(Object o) { @@ -73,3 +61,4 @@ public class TankLevel { ", level='" + level + '}'; } } +