可以对原生SQL 查询使用ResultTransformer。这会返回不受Hibernate管理的实体。 java 代码 sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM CATS") .setResultTransformer(Transformers.aliasToBean(CatDTO.class)) 推荐你一个简单的办法,就是将特殊结构的sql看作虚拟表,像普通表一样进行映射。