这是我没有解决之前的:
hibernate--原生SQL查询无法返回对象集合_sql

hibernate--原生SQL查询无法返回对象集合_原生SQL_02

然后解决好之后的样子:
hibernate--原生SQL查询无法返回对象集合_原生SQL_03

然后没有解决之前的代码:

(这里我只是查询了部分字段,select 部分字段 from ;)

package com.web.system.dao.impl;

import com.web.base.dao.impl.BaseDaoImpl;
import com.web.system.dao.FunctionDao;
import com.web.system.entity.Function;
import org.hibernate.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class FunctionDaoImpl extends BaseDaoImpl<Function, String> implements FunctionDao {

    @Override
    public List<Function> getFunc(Integer functype, String... id) {
        String sql = "SELECT f.部分字段 FROM tb_system_function f INNER JOIN tb_system_role_function uf ON f.id=uf.FUNCID " +
                "INNER JOIN tb_system_role r ON r.id=uf.roleid WHERE f.status=1 AND f.functype=:funcType AND r.id IN (:ids) ORDER BY f.sortnum";
        Query query = getSession().createSQLQuery(sql);
        query.setParameter("funcType", functype);
        query.setParameterList("ids", id);
        return query.list();
    }
}

解决之后的代码:

(然后我这边查询的就是全部字段 ,select * from ;;;然后在getSession().createSQLQuery(sql)后面接着.addEntity(Function.class),实体类.class)

package com.web.system.dao.impl;

import com.web.base.dao.impl.BaseDaoImpl;
import com.web.system.dao.FunctionDao;
import com.web.system.entity.Function;
import org.hibernate.Query;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public class FunctionDaoImpl extends BaseDaoImpl<Function, String> implements FunctionDao {

    @Override
    public List<Function> getFunc(Integer functype, String... id) {
        String sql = "SELECT f.* FROM tb_system_function f INNER JOIN tb_system_role_function uf ON f.id=uf.FUNCID " +
                "INNER JOIN tb_system_role r ON r.id=uf.roleid WHERE f.status=1 AND f.functype=:funcType AND r.id IN (:ids) ORDER BY f.sortnum";
        Query query = getSession().createSQLQuery(sql).addEntity(Function.class);
        query.setParameter("funcType", functype);
        query.setParameterList("ids", id);
        return query.list();
    }
}

然后没有啦!
然后这边并不推荐使用这种方法,因为select * from 是很低级的,数据量大的话这样是很耗费时间的,而且如果被别人看到的话是会被喷的,当然还请大家放过我,这只是我解决问题的一个办法而已。。。