SELECT ROW_NUMBER () OVER (ORDER BY a.AREA DESC) FROM A AS a GROUP BY a.AREA
SELECT NewID() FROM A AS a GROUP BY a.AREA
这个ID生成主要是用在JPA的MAPPING映射的原生SQL查询的地方。
其中第一使用的时候,在获取数据之前需要进行entityManager.clear();否则会出现数据2次查询才能显示正确的数据。
原因是JPA缓存之前的数据,只比较ID的值,第一个ID的值有可能是一样,只是其他值不同,但是JPA会认为他们是同一个数据,虽然去后台查询了数据,但不会复制给对象,所以会出现查询出来的数据不正确。
本文转自xudayu 51CTO博客,原文链接:http://blog.51cto.com/xudayu/424582,如需转载请自行联系原作者