Kontakt

Fakturační údaje

IČ: 87189224, BÚ: 1958653063/0800

Contact info in QR code

Musico

Informace

  • Webová aplikace vytvořená pomocí technologií EJB a JSF, s úmyslem nasazení na Glassfish serveru.
  • Psaná jako semestrální práce pro předmět X33EJA.
  • Účelem bylo osvojit si:
    • Návrh doménového modelu a jeho implementaci (alespoň jedna vazba M:N)
    • Použití JPA pro persistenci
    • Transakce
    • Použití EJB (stateless i statefull)
    • Lokalizaci do více jazyků
    • Autorizaci uživatelů, rozdělení do rolí a zabezpečení přístupu k business vrstvě
    • Webové rozhrání (servlety, jsp, nebo web framework)

Zdrojové kódy

  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:  * @author Ondra
 19:  * @version 1.0
 20:  * @created 23-XII-2009 19:34:16
 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: }