hibernet查询视图不能用select * ,否则出现list.size>0,但list中数据为空。
可通过sql查询视图字段,将结果拼入查询sql,这样视图变更后查询语句不用修改。
查询视图字段名(mysql):
String columnSql = "select group_concat(column_name order by ordinal_position) column_name from " +
" (select column_name,ordinal_position from information_schema.columns " +
" where table_name = 'v_lab' and table_schema = 'dhis_cis' order by ordinal_position ) t ";
String columnName = em.createNativeQuery(columnSql).getSingleResult().toString();
然后将columnName拼入sql查询即可。