Duvidas com o Hibernate

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.


By [URL=http://profile.imageshack.us/user/blv777]blv777[/URL] at 2011-08-28

Então…
agora segue uma classe mapeada…quero dizer duas, pois é com elas que eu vou introduzir minhas duvidas.

[code]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[/code]

[code]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[/code]

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.

Você pode fazer o contrário também. Se já tem o banco pronto, gere automaticamente as classes através do banco. o Netbeans e o Idea fazem isso, o Eclipse deve fazer também, mas não tenho certeza.

Você pode fazer o contrário também. Se já tem o banco pronto, gere automaticamente as classes através do banco. o Netbeans e o Idea fazem isso, o Eclipse deve fazer também, mas não tenho certeza.
[/quote]

Vou dar uma olhada nisso…
Obrigado.

Quem mais puder opinar e tal, é bem vindo, eu sou novo com Hibernate.