天天看点

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

这是我没有解决之前的:

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

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

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();
    }
}
           

解决之后的代码:

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();
    }
}