【问题标题】:Hibernate Native SQL Mapping to Entity with Selection ExampleHibernate Native SQL Mapping to Entity with Selection Example
【发布时间】:2013-03-01 04:52:57
【问题描述】:

我尝试创建本机 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;
    }

请举个例子。谢谢。

【问题讨论】:

    标签: hibernate native-sql


    【解决方案1】:

    你可以试试下面的代码。

    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.createSQLQuery("从 pool_rule_mapping prm 中选择 prm.rule_id 作为规则,其中 prm.is_active = ?;"); c = q.addEntity(PoolRuleMapping.class).setParameter(0, 1).list();它返回 null;
    • @peterwkc 您设置的参数索引错误。从1开始,试试setParameter(1, 1)
    猜你喜欢
    • 2022-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    • 2014-04-05
    • 2017-05-29
    相关资源
    最近更新 更多