如何使用JPA本机查询选择多个具有相同名称的列?
|
在通过JPA使用sql本机查询选择某些数据时,遇到了一些麻烦。那是因为我有3个具有相同名称的列“ descricao”。
当我通过EntityManager接口的createNativeQuery方法执行select操作时,找到的第一列值将覆盖其他值。
(例如,当我在对象数组中得到此结果时,给定记录的第一列描述的值为\“ foo \”,第二个\“ bar \”和第三个\“ foobar \”(因为还没有ORM映射的实体),无论在何处都应使用给定列的第二和第三个值descricao填充第一个的值)
我非常确定,这是因为一旦在数据库上直接选择了JPA,就可以正确返回所有内容。
环境:
MySQL5;
EJB 3.0;
JPA 1.0;
JBoss 5.0.0GA;
JDK 1.6;
SQL查询:
\"select p.id, p.datapedido, b.descricao, prd.descricao, s.nome,
usuario.email, cc.chave_cupom, prd.nome,
ca.descricao, i.produto_id, i.valoritem,
hc.valor_utilizado, tp.datapagamento
...\"
没有找到相关结果
已邀请:
4 个回复
粱委教
现在,按照列映射中的指定,对本机查询中的列使用别名。 \“选择p.id,p.datapedido,b.descricao作为B_DESCRICAO,prd.descricao作为PRD_DESCRICAO,s.nome,usuario.email,cc.chave_cupom,prd.nome,ca.descricao作为CA_DESCRICAO,i.produto_id,i .valoritem,hc.valor_utilizado,tp.datapagamento ... \“ 通过指定resultSetMapping和query创建本机查询。
赐黄
疾很毋悲
坝硷操