Bom dia!!!
é um pouco velho esse topico, mas a pedidos de uma amiga, segue a resposta abaixo.
Para fazer um relacionamento 1 x N vc tem que ter em mente que o relacionamento final, pode gerar 1 ou vários registros. Neste caso seria como um List o retorno.
Primeiramente vc deve fazer o mapeamento, no caso do Hibernate, ou via XML ou via Annotation. No caso do JPA seria via Annotation.
Abaixo eu coloquei um exemplo:
Imaginamos que vc tenha duas tabelas uma de Fornecedor (supplier) e outra de Produtos (product)
o relacionamento é um Fornecedor pode ter 1 ou vários produtos e um produto pode ter 1 fornecedor (1 x N).
Neste caso as classes poderia ser:
public class Product
{
private int id;
private Supplier supplier;
private String name;
private String description;
private double price;
public Product()
{
super();
}
// Omitido
}
public class Supplier
{
private int id;
private String name;
private List products = new ArrayList();
// omitido
}
Para efetuar o relacionamento fazendo um criteria vc poderia fazer da seguinte forma:
Session session = HibernateUtil.currentSession();
Criteria crit = session.createCriteria(Supplier.class);
Criteria prdCrit = crit.createCriteria("products");
prdCrit.add(Restrictions.gt("price",new Double(25.0)));
List results = crit.list();
displaySupplierList(results);
Note que foi feito um Load da Classe “Mandante” e depois fiz uma Segunda Criteria colocando uma restrição GT (GreatThan) (Maior que) para o preço!
e o retorno é a lista dos “Fornecedores”
O Mapeamento em um XML ficaria mais ou menos assim
<hibernate-mapping>
<class name="Supplier">
<id name="id" type="int">
<generator class="increment"/>
</id>
<property name="name" type="string"/>
<bag name="products" inverse="true" cascade="all,delete-orphan">
<key column="supplierId"/>
<one-to-many class="Product"/>
</bag>
</class>
</hibernate-mapping>
Bem, seria mais ou menos isso com XML no caso de Annotations vc pode fazer um Relacionamento usando um @OneToMany/ @ManyToOne colocando sobre a Lista e sobre o atributo contido dentro da Classe (Supplier e Product)
Para finalizar, produre dar uma “googada” colocando “example of relationship hibernate criteria”.
Existem vários textos que podem lhe auxiliar!
Até Breve