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?
sim, o hibernate eh poderoso o suficiente… mais do que vc imagina. Na real a especificação JPA ja define esse “poder”
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:
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?
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: