Правка моделей.
This commit is contained in:
parent
8a23075ac6
commit
973e2c6a16
@ -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<Tank> tanks;
|
||||
@OneToMany(fetch = FetchType.EAGER)
|
||||
private List<Tank> 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<Tank> 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(", ")) + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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<Tank> tanks = new ArrayList<>();
|
||||
@OneToMany(mappedBy = "nation", fetch = FetchType.EAGER, cascade = CascadeType.MERGE)
|
||||
private List<Tank> tanksOfThisNation = new ArrayList<>();
|
||||
|
||||
public Nation() {
|
||||
}
|
||||
@ -37,13 +38,12 @@ public class Nation {
|
||||
this.nation = nation;
|
||||
}
|
||||
|
||||
public List<Tank> getTanks(){
|
||||
return tanks;
|
||||
public List<Tank> 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(", ")) + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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<GameClient> 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<GameClient> getClients() {
|
||||
return gameClients;
|
||||
}
|
||||
|
||||
public void setClients(List<GameClient> 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(", ")) + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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<Tank> tanksOfThisLevel = new ArrayList<>();
|
||||
|
||||
public TankLevel() {
|
||||
}
|
||||
|
||||
@ -37,15 +34,6 @@ public class TankLevel {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public List<Tank> 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 + '}';
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user