Hibernate-Mapping e Modelo

1 resposta
M

Bom, estou começando a mexer com o hibernate mapping e estou com algumas dificuldades para entender. Acho que estou mais confusa do que tudo… rsrsrs

Tenho tres tabelas

Conhecimento

-Filial(Long)

-Numero(Long)

-Destino(String)
Filial

-CodFil(Long)

-DesFil(String)
Destino

-CodDes(Long)

-Nome(String)

-Endereco

Preciso fazer um relacionamento entre elas usando hibernate-mapping e retornar um list para meu jsp.
A minha dificuldade é escrever um bom código. Alguem poderia me ajudar, ficaria super agradecida pois preciso com urgência.
A query teria que ficar mais o menos assim:

Preciso do Hibernate e da classe modelo.

Obrigada!

1 Resposta

victorwss

Porque que Destino na tabela Conhecimento é String e CodDes em Destino é Long? Vou assumir que deveria ser Long. Para que serve o campo Destino na tabela Conhecimento se aparentemente você não o utiliza?

Eu mapearia assim:
@Entity
public class Conhecimento implements Serializable {

    @ManyToOne
    private Filial filial;

    @Id
    @GeneratedValue
    private Long numero;

    @ManyToOne
    private Destino destino;

    // Acrescentar construtores, getters, setter, outros métodos, etc.
}
@Entity
public class Filial implements Serializable {

    @Id
    @GeneratedValue
    @Column(name = "codFil")
    private Long codigo;

    @ManyToOne
    @JoinColumn(name = "desFil")
    private Destino destino;

    // Acrescentar construtores, getters, setter, outros métodos, etc.
}
@Entity
public class Destino implements Serializable {

    @Id
    @GeneratedValue
    @Column(name = "codDes")
    private Long codigo;

    private String nome;

    private String endereco;

    // Acrescentar construtores, getters, setter, outros métodos, etc.
}
Sua JPQL ficaria bem simples:
SELECT B FROM Conhecimento B
Daí você pega o resultado e manda para a JSP. Ficaria algo assim:
<c:forEach items="${lista}" var="elemento">
    <c:out value="${elemento.numero}" />
    <c:out value="${elemento.filial.codigo}" />
    <c:out value="${elemento.filial.destino.codigo}" />
    <c:out value="${elemento.filial.destino.nome}" />
    <c:out value="${elemento.filial.destino.numero}" />
</c:forEach>
Criado 4 de março de 2011
Ultima resposta 6 de mar. de 2011
Respostas 1
Participantes 2