Struts e Hibernate

Passa-se o seguinte:

[code]
public class A{

private int id;
private B b;
private Set<C> c = new HashSet<C>();

}[/code]

A classe A está mapeada numa tabela A com o id, a classe B está numa tabela B e a lista está numa tabela C e possui uma chave estrangeira referente á tabela A.

Quando eu pesquiso algum ID só obtenho o id do objecto A e os dados do objecto B. Como é que eu obtenho os dados relativos a C?

O hibernate é poderoso o suficiente para preencher a lista no objecto A?

O struts não tem nada a ver com isso ai bele?!

sim, o hibernate eh poderoso o suficiente… mais do que vc imagina. Na real a especificação JPA ja define esse “poder” :stuck_out_tongue:

Vc esta usando annotations?! se sim deve ter uma anotacao “ManyToOne” para seu atributo b, para que o C venha preenchido basta anotado com “OneToMany”. Caso não esteja usando annotations, vc mapeia seu atributo como one to many no xml. Da uma lida nesses dois links que devem te ajudar:

http://java.sun.com/javaee/5/docs/api/javax/persistence/OneToMany.html
http://www.hibernate.org/hib_docs/v3/reference/en/html/collections.html#collections-mapping

Eu não estou a usar annotations. Estou a definir as relações num ficheiro com a extensão hbm.xml

A minha dúvida é a seguinte:
se eu quero o meu objecto A da base de dados basta fazer

serviceHIBERNATE.find(A) e o hibernate preenche automaticamente a lista C, ou seja, ele sabe preencher a lista ou eu tenho de programar essa tarefa? Os set’s definidos chegam?

Obrigado pela ajuda.

Vc naum leu nada que eu te passei né?! ja que me fez a mesma pergunta do primeiro post. Detalhe que um exemplo desse mapeamento eh o primeiro codigo do link do hibernate ali de cima :???:

Vc fazendo o mapeamento via xml fica mais ou menos assim:

<set name="c" lazy="true">
  <key column="id_a"/>
  <one-to-many class="ClasseC"/>
</set>

ClasseA {
  Set<C> c;
}

ClasseC {
  A a;
}

No meu caso a classe C não tem A. Tem de ter ?