Bom dia pessoal
Estamos enfrentando um problema aqui. Tenho uma entidade(classe ItemPesquisa, persistido em 1 schema) que possui associação com um objeto (produto) persistido em mais de um "schema" de banco de dados.
Para resolver isso, criamos um método com uma consulta SQL, onde eu indico de qual schema o produto deve vir.
Mas, o que acontece é que, no código abaixo, quando busco o ItemPesquisa e seus dados (código, por exemplo), e coloco uma entidade no Transform, o valor do ItemPesquisa.código está sobreescrevendo o valor do Produto.código.
Alguém tem uma luz, pra resolver isso? Ou sabe como eu poderia usar 2 schemas em uma mesma Criteria?
Segue trecho do código:
public List<ItemPesquisa> buscarItensPesquisa(Long codigoRepresentante ,OpcoesPesquisa opcoesPesquisa, String schema){
StringBuilder sql = new StringBuilder()
.append(" SELECT ")
.append(" item_pesquisa.codigo, item_pesquisa.ranking, item_pesquisa.comentario , ")
.append(" "+ schema +".produtos.*,")
.append(" pesquisa.* ")
.append(" FROM ")
.append(" item_pesquisa ")
.append(" INNER JOIN ")
.append(" "+ schema +".produtos on item_pesquisa.produto = "+ schema +".produtos.codigo ")
.append(" INNER JOIN ")
.append(" pesquisa on item_pesquisa.pesquisa = pesquisa.codigo ")
.append(" INNER JOIN ")
.append(" "+ schema +".representantes on pesquisa.representante = "+ schema +".representantes.codigo ")
.append(" WHERE ")
.append(" pesquisa.representante = "+ codigoRepresentante +" ")
.append(" AND ")
.append(" pesquisa.opcoes_pesquisa = "+ opcoesPesquisa.ordinal() +" ")
.append(" ORDER BY item_pesquisa.ranking ")
;
SQLQuery query = ComandoUtil.getSession(schema).createSQLQuery(sql.toString());
query.setResultTransformer(Transformers.aliasToBean(ItemPesquisa.class));
query.addScalar("codigo",Hibernate.LONG)
.addScalar("ranking", Hibernate.LONG)
.addEntity(Pesquisa.class)
.addEntity(Produto.class)
.addScalar("comentario",Hibernate.STRING)
;
.addScalar("pesquisa", Hibernate.entity(Pesquisa.class))
.addScalar("produto", Hibernate.entity(Produto.class))
Fabiano Santos de Oliveira
Internet e Desenvolvimento
Departamento de TI
Tel. +55 44 3351 5014 | Cel. 55 44 9915 0429
e-mail | fabiano@morenarosa.com.br
site | http://www.grupomorenarosa.com.br
[cid:image003.jpg@01CB6607.F3646BC0]
Antes de Imprimir, Pense em seu compromisso com o Meio-Ambiente
Esta mensagem pode conter informação confidencial e/ou privilegiada. Se você não for o destinatário ou a pessoa autorizada a receber esta mensagem, não pode usar, copiar ou divulgar as informações nela contidas ou tomar qualquer ação baseada nessas informações. Se você recebeu esta mensagem por engano, por favor, avise imediatamente o remetente, respondendo o e-mail, e em seguida apague-o. Agradecemos sua cooperação.
[As partes desta mensagem que não continham texto foram removidas]
Para upload/download de arquivos: http://www.yahoogroups.com/files/java-br
0 comentários:
Postar um comentário