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,如需轉載請自行聯系原作者