package de.flower.rmt.model.db.entity; import de.flower.common.validation.unique.Unique; import org.hibernate.validator.constraints.NotBlank; import org.hibernate.validator.constraints.URL; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import javax.validation.constraints.Size; import javax.validation.groups.Default; import java.util.ArrayList; import java.util.List; /** * @author flowerrrr */ @Entity @Table(name = "team", uniqueConstraints = @UniqueConstraint(name = "name", columnNames = {"name", "club_id"})) @Unique(name = "name", clazz = Team.class, message = Team.Validation.nameNotUniqueMessage, groups = { Team.Validation.INameUnique.class, Default.class }) public class Team extends AbstractClubRelatedEntity { public interface Validation { public interface INameUnique {} public final static String nameNotUniqueMessage = "{validation.unique.name}"; } @NotBlank @Size(max = 50) @Column private String name; @URL @Size(max = 255) @Column private String url; @OneToMany(mappedBy = "team") private List<Player> players = new ArrayList<Player>(); protected Team() { } public Team(Club club) { super(club); } public Team(String name, String url, Club club) { super(club); this.name = name; this.url = url; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public List<Player> getPlayers() { return players; } public void setPlayers(List<Player> players) { this.players = players; } }