本人最近碰到一个很奇怪的问题,就是使用jdbc来执行sql语句和使用容器托管的entitymanager的createNativeQuery原生查询方法来执行sql,结果居然不同!
百思不得其解之际,将问题发出来,请各位高人指点环境:JDK6, flex3+ejb3.0
涉及的SQL语句:
SELECT * FROM (SELECT ROW_NUMBER() OVER() AS ROWNO_, t.* FROM  TABLE t WHERE OPER_IN != 'd' AND (node_id in (select NODE_ID from table2 )) ORDER BY bmqid FETCH FIRST 40 ROWS ONLY) AS PAGED_TABLE WHERE ROWNO_ BETWEEN 21 AND 40表:
table1内超过100条记录,bmqid为主键 
table2内固定2条记录数据库
db2 代码内执行:
Query query = entityManager.createNativeQuery(以上的sql, table1.class);结果使用createNativeQuery返回20点记录,使用dbvis查询返回3条实在是不知道createNativeQuery与直接使用jdbc执行sql有什么不同