Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate本机SQL映射到实体的选择示例_Hibernate_Native Sql - Fatal编程技术网

Hibernate本机SQL映射到实体的选择示例

Hibernate本机SQL映射到实体的选择示例,hibernate,native-sql,Hibernate,Native Sql,我试图创建本机sql查询并映射到带有参数的实体类,但失败了 /** * @return */ public List<PoolRuleMapping> getAllPRM() { Session session = null; List<PoolRuleMapping> prmList = null; try { session = HibernateSessionFac

我试图创建本机sql查询并映射到带有参数的实体类,但失败了

/**
     * @return
     */
    public List<PoolRuleMapping> getAllPRM() {
        Session session = null;
        List<PoolRuleMapping> prmList = null;

        try {
            session = HibernateSessionFactory.getSession();

            Query q = session.createSQLQuery("select * from pool_rule_mapping").addEntity(PoolRuleMapping.class);
            prmList = q.list();

        } catch (HibernateException e) {
        } finally {
            session.close();
        }

        return prmList;
    }

请提供一个例子。谢谢

您可以尝试下面的代码

session.createSQLQuery("select * from pool_rule_mapping")
 .addScalar("ID", Hibernate.LONG)
 .addScalar("NAME", Hibernate.STRING)
 .addScalar("SOMEDATE", Hibernate.DATE)
 .addEntity(PoolRuleMapping.class);
此外,您还可以尝试为各个字段指定别名

select prm.id AS ID, prm.name AS NAME, prm.somedate as SOMEDATE from pool_rule_mapping prm

不,它没有按预期工作。session.CreateSqlQuerySelectprm.rule_id作为规则从池_rule_mapping prm中选择,其中prm.is_active=?;;c=q.AddEntityToolRuleMapping.class.setParameter0,1.list;它返回null@peterwkc您设置的参数索引错误。它从1开始,尝试设置参数1,1。