Acessar campo many to many

3 respostas
D

Tenho as classes:

Cliente

public class Cliente {
......
@ManyToMany
	@JoinTable(name = "cliente_produto",  
	joinColumns = { @JoinColumn(name = "cod_cliente")},
	inverseJoinColumns={@JoinColumn(name="cod_produto")}
	)
	private List<Produto> produtos;
}

Produto

public class Produto {
.....
@ManyToMany(fetch = FetchType.EAGER)
	  @JoinTable(name = "cliente_produto",  
	    joinColumns = { @JoinColumn(name = "cod_produto")},
	    inverseJoinColumns={@JoinColumn(name="cod_cliente")}
	)
	private List<Cliente> clientes;
......

ProdutoDAO

public class ProdutoDAO {

public Produto listarPorCodigo(Integer codigo) {
		session = HibernateUtil.getSessionFactory().openSession();
		try {
			session.beginTransaction();
			Criteria criteria = session.createCriteria(Produto.class);
			criteria.add(Restrictions.eq("codigo", codigo));
			return (Produto) criteria.uniqueResult();
		} catch (HibernateException he) {
			throw he;
		} finally {
			session.close();
		}
	}

}

ProdutoAction

public class ProdutoAction extends ActionSupport {
...
private Produto produto;

// getters and setters

public String listar(){
produto = getProdutoDAO().listarPorCodigo(1);
return "SUCCESS";
}
...
}

nao estou conseguindo recuperar os dados do cliente na consulta utilizando struts…
ja tentei das seguintes maneiras e nada:

<s:iterator value="produto.clientes">
            	<s:property value="nome"/>
            </s:iterator>
// nao deu nada

<s:iterator value="produto.clientes">
            	<s:property value="clientes.nome"/>
            </s:iterator>
// também nada

<s:property value="nome"/>
// nada também....

alguem sabe como posso exibir o nome do cliente desse determinado produto?

3 Respostas

D

alguem tem alguma sugestao?

Hebert_Coelho

Ele chega a ir ao banco de dados na hora da consulta? ele traz resultados?

D

sim, traz resultados sim…quando eu uso:

<s:property value=“produto.clientes.size()” />

ele retorna: 2

Criado 7 de novembro de 2011
Ultima resposta 7 de nov. de 2011
Respostas 3
Participantes 2