1: package cz.cvut.x33eja.macosond.persistence.entity;
2:
3: import java.io.Serializable;
4: import java.util.Collection;
5: import javax.persistence.CascadeType;
6: import javax.persistence.Column;
7: import javax.persistence.Entity;
8: import javax.persistence.GeneratedValue;
9: import javax.persistence.GenerationType;
10: import javax.persistence.Id;
11: import javax.persistence.JoinColumn;
12: import javax.persistence.JoinTable;
13: import javax.persistence.ManyToMany;
14: import javax.persistence.NamedQuery;
15: import javax.persistence.Table;
16:
17: 18: 19: 20: 21:
22: @Entity
23: @Table(name="Musician")
24: @NamedQuery(name="Musician.list", query="SELECT m FROM Musician m")
25: public class Musician implements Serializable
26: {
27: private static final long serialVersionUID = 1L;
28:
29: @Id
30: @GeneratedValue(strategy = GenerationType.AUTO)
31: @Column(name="MusicianID")
32: private Integer MusicianID;
33: @Column(name="FirstName")
34: private String FirstName;
35: @Column(name="SecondName")
36: private String SecondName;
37: @Column(name="ArtName")
38: private String ArtName;
39: @Column(name="Biography")
40: private String Biography;
41:
42: @ManyToMany(cascade = CascadeType.PERSIST, mappedBy = "Musicians")
43: private Collection<Band> Bands;
44:
45: @ManyToMany
46: @JoinTable(
47: name = "MusicianAbility",
48: joinColumns = @JoinColumn(name="MusicianID", referencedColumnName="MusicianID"),
49: inverseJoinColumns = @JoinColumn(name="AbilityID", referencedColumnName="AbilityID")
50: )
51: private Collection<Ability> Abilities;
52:
53: public Musician()
54: {
55: super();
56: }
57:
58: public Musician(Integer MusicianID)
59: {
60: super();
61: this.MusicianID = MusicianID;
62: }
63:
64: public Integer getMusicianID()
65: {
66: return MusicianID;
67: }
68:
69: public void setMusicianID(Integer MusicianID)
70: {
71: this.MusicianID = MusicianID;
72: }
73:
74: public String getFirstName()
75: {
76: return FirstName;
77: }
78:
79: public void setFirstName(String FirstName)
80: {
81: this.FirstName = FirstName;
82: }
83:
84: public String getSecondName()
85: {
86: return SecondName;
87: }
88:
89: public void setSecondName(String SecondName)
90: {
91: this.SecondName = SecondName;
92: }
93:
94: public String getArtName()
95: {
96: return ArtName;
97: }
98:
99: public void setArtName(String ArtName)
100: {
101: this.ArtName = ArtName;
102: }
103:
104: public String getBiography()
105: {
106: return Biography;
107: }
108:
109: public void setBiography(String Biography)
110: {
111: this.Biography = Biography;
112: }
113:
114: public Collection<Band> getBands()
115: {
116: return Bands;
117: }
118:
119: public void setBands(Collection<Band> Bands)
120: {
121: this.Bands = Bands;
122: }
123:
124: public Collection<Ability> getAbilities()
125: {
126: return Abilities;
127: }
128:
129: public void setAbilities(Collection<Ability> Abilities)
130: {
131: this.Abilities = Abilities;
132: }
133:
134: @Override
135: public int hashCode()
136: {
137: int hash = 0;
138: hash = (MusicianID == null ? 0 : MusicianID.hashCode());
139: return hash;
140: }
141:
142: @Override
143: public boolean equals(Object o)
144: {
145: if( !(o instanceof Musician) ) {
146: return false;
147: }
148:
149: Musician other = (Musician) o;
150: if( ( this.MusicianID == null && other.MusicianID != null )
151: || ( this.MusicianID != null && other.MusicianID == null )
152: || ( !this.MusicianID.equals(other.MusicianID) )
153: ) {
154: return false;
155: }
156: return true;
157: }
158:
159: @Override
160: public String toString()
161: {
162: return "cz.cvut.x33eja.macosond.persistence.entity.Musician[id=" + MusicianID + "]";
163: }
164:
165:
166: }