dao:
public class Dao<T> {
private final Session session;
private final Class classe;
public Dao(Session session,Class classe) {
this.session = session;
this.classe = classe;
}
public void adiciona(T u) {
this.session.save(u);
}
public void remove (T u) {
this.session.delete(u);
}
public void atualiza (T u) {
this.session.merge(u);
}
public List<T> listaTudo() {
return this.session.createCriteria(this.classe).list();
}
public T procura(String id) {
return (T) session.load(this.classe, id);
}
public T procura(int id) {
return (T) session.load(this.classe, id);
}
public T procura(Serializable id) {
return (T) session.load(this.classe, id);
}
}
Campus:
@Entity
public class Campus implements Serializable{
@Id
@Column(name="codcampus")
private String codCampus;
@Column(name="nomecampus")
private String nomeCampus;
@OneToMany(mappedBy = "campus")
private List<Bloco> blocos;
//gets e sets omitidos
}
Bloco:
@Entity
public class Bloco implements Serializable{
@ManyToOne (fetch=FetchType.LAZY) //o seu conteúdo é trazido quando acessado pela primeira vez.
@JoinColumn(name="codcampus")
private Campus campus;
@Id
@Column(name="codbloco")
private String codBloco;
//gets e sets omitidos
}
Pavimento:
@Entity
public class Pavimento implements Serializable{
@Id
@Column(name="codpavimento")
private int codPavimento;
@Column(name="dscpavimento")
private String dscPavimento;
public int getCodPavimento() {
return codPavimento;
}
public void setCodPavimento(int codPavimento) {
this.codPavimento = codPavimento;
}
public String getDscPavimento() {
return dscPavimento;
}
public void setDscPavimento(String dscPavimento) {
this.dscPavimento = dscPavimento;
}
}
Andar(ele é relacionamento entre bloco e pavimento)
@Entity
public class Andar implements Serializable{
@EmbeddedId
private AndarPK id;
@ManyToOne
@JoinColumn(name="codbloco",referencedColumnName="codbloco",insertable=false,updatable=false)
private Bloco bloco;
@ManyToOne
@JoinColumn(name="codpavimento",referencedColumnName="codpavimento",insertable=false,updatable=false)
private Pavimento pavimento;
@Column(name="banheiro")
private int banheiro;
@Column(name="bebedouro")
private int bebedouro;
//gets e sets omitidos
andarPK:
@Embeddable
public class AndarPK implements Serializable{
@Column(name="codpavimento")
private int codPavimento;
@Column(name="codbloco")
private String codBloco;
//gets e sets omitidos
Sala:
@Entity
public class Sala implements Serializable{
@Id
@GeneratedValue
@Column(name="codsala")
private String codSala;
@Column(name="capacidade")
private int capacidade;
@Column(name="arcondicionado")
private int arCondicionado;
@Column(name="ventilador")
private int ventilador;
@Column(name="ativo")
private String ativo;
@Column(name="dscsala")
private String dscSala;
@Column(name="tipoquadro")
private String tipoQuadro;
@Column(name="datashow")
private String dataShow;
@ManyToOne
@JoinColumn(referencedColumnName="codtiposala")
private TipoSala tipoSala;
@Id
@ManyToOne
@JoinColumn(referencedColumnName="codandar")
private Andar andar;
//gets e sets omitidos
@Entity
public class TipoSala implements Serializable{
@Id
@Column(name="codtiposala")
private int codTipoSala;
@Column(name="dsctiposala")
private String dscTipoSala;
//gets e sets omitidos
HibernateUtil:
public class HibernateUtil {
public static SessionFactory factory;
static{
Configuration conf = new AnnotationConfiguration();
conf.configure();
factory = conf.buildSessionFactory();
}
public static Session getSession() {
return factory.openSession();
}
}
DaoFactory:
public class DaoFactory {
private final Session session;
public Transaction transaction;
public DaoFactory(){
session = HibernateUtil.getSession();
}
public void beginTransaction(){
this.transaction = this.session.beginTransaction();
}
public void commit(){
this.transaction.commit();
this.transaction = null;
}
public boolean hasTransaction(){
return this.transaction != null;
}
public void rollback(){
this.transaction.rollback();
this.transaction = null;
}
public void closeSession(){
this.session.close();
}
}
Vlw!!!