比如有User表(id, name, gender, birth),如下sql:
select distinct u.name, u.gender, u.birth from User u where 1=1 order by u.id ASC;
select distinct new User(u.name, u.gender, u.birth) from User u where 1=1 order by u.id ASC;
运行时会报错ORA-01791错误.
只要order by 的属性不在distinct之列,就会报错。
如果是SQL,可以改成:
select t.name, t.gender, t.birth from (select distinct u.id, u.name, u.gender, u.birth from User u where 1=1) order by t.id ASC;
如果是HQL,似乎不太好改,因为HQL中不支持带有select子语的from语句。
希望有经验的朋友赐教。