package app.data.entity;
|
|
|
|
import javax.persistence.*;
|
|
import java.util.Collection;
|
|
import java.util.Objects;
|
|
|
|
@Entity
|
|
@Table(name = "player", schema = "public", catalog = "chessleague")
|
|
public class Player {
|
|
private Integer id;
|
|
private String name;
|
|
private String nickname;
|
|
private Collection<Match> matchesAsPlayer1;
|
|
private Collection<Match> matchesAsPlayer2;
|
|
private PlayerInfo playerInfo;
|
|
|
|
@Id
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
@Column(name = "id", nullable = false)
|
|
public Integer getId() {
|
|
return id;
|
|
}
|
|
|
|
public void setId(Integer id) {
|
|
this.id = id;
|
|
}
|
|
|
|
@Basic
|
|
@Column(name = "name", nullable = false, length = -1)
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
public void setName(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
@Basic
|
|
@Column(name = "nickname", nullable = false, length = -1)
|
|
public String getNickname() {
|
|
return nickname;
|
|
}
|
|
|
|
public void setNickname(String nickname) {
|
|
this.nickname = nickname;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object o) {
|
|
if (this == o) return true;
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
Player that = (Player) o;
|
|
return Objects.equals(id, that.id) && Objects.equals(name, that.name) && Objects.equals(nickname, that.nickname);
|
|
}
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(id, name, nickname);
|
|
}
|
|
|
|
@OneToMany(mappedBy = "player1", cascade = CascadeType.DETACH)
|
|
public Collection<Match> getMatchesAsPlayer1() {
|
|
return matchesAsPlayer1;
|
|
}
|
|
|
|
public void setMatchesAsPlayer1(Collection<Match> matchesAsPlayer1) {
|
|
this.matchesAsPlayer1 = matchesAsPlayer1;
|
|
}
|
|
|
|
@OneToMany(mappedBy = "player2", cascade = CascadeType.DETACH)
|
|
public Collection<Match> getMatchesAsPlayer2() {
|
|
return matchesAsPlayer2;
|
|
}
|
|
|
|
public void setMatchesAsPlayer2(Collection<Match> matchesAsPlayer2) {
|
|
this.matchesAsPlayer2 = matchesAsPlayer2;
|
|
}
|
|
|
|
@OneToOne(cascade = CascadeType.ALL)
|
|
@JoinColumn(name = "info", referencedColumnName = "id")
|
|
public PlayerInfo getPlayerInfo() {
|
|
return playerInfo;
|
|
}
|
|
|
|
public void setPlayerInfo(PlayerInfo playerInfo) {
|
|
this.playerInfo = playerInfo;
|
|
}
|
|
|
|
}
|