Oi pessoal.
Estou com algumas duvidas na aplicação que estou desenvolvendo para o meu TCC onde estou utilizando Hibernate.
Primeiramente mostro o meu modelo de dados.
[IMG]http://img827.imageshack.us/img827/1926/diagramadedadosfisicoim.png[/IMG]
By blv777 at 2011-08-28
Então...
agora segue uma classe mapeada...quero dizer duas, pois é com elas que eu vou introduzir minhas duvidas.
package br.edu.usjt.tcc.wcl.model;
import java.io.Serializable;
import javax.persistence.*;
/**
* Classe que representa a Entidade Sala dentro do sistema.
* @author Grupo WCL
* @version 1.0.0
*/
@Entity
@Table(name = "tb_sala")
public class Sala implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_sala", nullable = false)
private Integer id;
@Column(name = "num_sala", nullable = false)
private int numero;
@Column(name = "bloco_sala", nullable = false)
private String bloco;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_tipo_carteira", referencedColumnName = "id_tipo_carteira", nullable = false)
private TipoCarteira tipoCarteira;
@Column(name = "capacidade")
private Integer capacidade;
@Column(name = "dimensao_x", nullable = false)
private Double dimensaoX;
@Column(name = "dimensao_y", nullable = false)
private Double dimensaoY;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public int getNumero() {
return numero;
}
public void setNumero(int numero) {
this.numero = numero;
}
public String getBloco() {
return bloco;
}
public void setBloco(String bloco) {
this.bloco = bloco;
}
public Double getDimensaoX() {
return dimensaoX;
}
public void setDimensaoX(Double dimensaoX) {
this.dimensaoX = dimensaoX;
}
public Double getDimensaoY() {
return dimensaoY;
}
public void setDimensaoY(Double dimensaoY) {
this.dimensaoY = dimensaoY;
}
public TipoCarteira getTipoCarteira() {
return tipoCarteira;
}
public void setTipoCarteira(TipoCarteira tipoCarteira) {
this.tipoCarteira = tipoCarteira;
}
public Integer getCapacidade() {
return capacidade;
}
public void setCapacidade(Integer capacidade) {
this.capacidade = capacidade;
}
} // fim da classe Sala
package br.edu.usjt.tcc.wcl.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* Classe que representa a Entidade Equipamento dentro do sistema.
* @author Grupo WCL
* @version 1.0.0
*/
@Entity
@Table(name = "tb_equipamento")
public class Equipamento {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_equipamento", nullable = false)
private Integer id;
@Column(name = "descr_eqpto", nullable = false)
private String descricao;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getDescricao() {
return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
} // fim da classe Equipamento
Vamos para as duvidas agora:
1ª) Vocês podem reparar que eu na tb_sala tenho como chave primaria a composição de num_sala e bloco_sala, mas nos relacionamentos com outras tabelas eu utilizo o atributo id_sala que é um atributo numérico auto incremental unique...uma chave secundaria...tudo certo até então...
Mas eu queria saber se eu fiz o mapeamento no Java corretamente. Vocês poderiam sugerir algo?
2ª) Vocês podem reparar que eu tbm possuo um relacionamento nxm entra sala e equipamento.
Eu não coloquei o banco de dados para ser criado pelo Hibernate, o bd já vai estar criado...como posso fazer o relacionamento corretamente no Hibernate?
São essas minhas duvidas.
Eu agradeço a quem puder me ajudar.