jpa Query nativeQuery = em.createNativeQuery(sql); 返回的无实体对象集合List>中map的key值为无序

jpa  Query nativeQuery = em.createNativeQuery(sql); 返回的无实体对象集合List<Map<String,Object>>中map的key值为无序

问题描述:

Query nativeQuery = em.createNativeQuery(sql);
nativeQuery.unwrap(NativeQueryImpl.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> list = nativeQuery.getResultList();
执行以上语句发现返回的map集合,map对象的key值与sql语句中查询列名顺序不一致,但不加上setResultTransformer返回的list集合顺序确实正确,就是缺少了属性名,我想着将两者匹配上重新new一个map集出来,却发现sql查询出来的结果集可能为nul,或者两个字段的参数值相同,这样很难匹配成攻,

map是无序集合。您可以通过循环一个一个取出来,去set
或者直接用反射。