Java 如何使用setString()hibernate设置列名

Java 如何使用setString()hibernate设置列名,java,sql,hibernate,Java,Sql,Hibernate,当我使用这个代码时,我得到了一个错误的结果(我知道我失败的地方)。是否有任何方法可以使用getNamedQuery()和setString()设置COLUMN\u NAME 您是否尝试过setParameter方法 this.sessionFactory.getCurrentSession().getNamedQuery("sql") .setString("COLUMN_NAME", "id"); 此外您必须添加以获得特定列。像 this.sessionFac

当我使用这个代码时,我得到了一个错误的结果(我知道我失败的地方)。是否有任何方法可以使用
getNamedQuery()
setString()
设置
COLUMN\u NAME

您是否尝试过
setParameter
方法

this.sessionFactory.getCurrentSession().getNamedQuery("sql")
                .setString("COLUMN_NAME", "id");
此外

您必须添加
以获得特定列。像

this.sessionFactory.getCurrentSession().getNamedQuery("sql")
                .setParameter("COLUMN_NAME", "id");

从表中选择:列名称。

或者,如果您已经为该表创建了
bean
类,则可以使用
setResultTransformer
方法。

不,它不起作用。从表中选择“COLUMN\u NAME”这样的字符串,它会返回COLUMN\u NAME word。所以您想动态更改列的名称,为什么?因为表中有col1 col2 col3这样的列。。。col100。我只想使用3列,但这3列可以是col5 col10 col30或col7 col8 col9或任何其他选项,因此我想动态更改sql列名并调用sql,如“从表中选择col1、col5、col99”
“得到错误结果”
出错的地方请发布错误。返回org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions错误:列名无效,但列名为true您必须在
.hbm
文件中映射表列,或在阅读其他注释
后通过
注释映射表列。我只想使用3列,但这3…
我有一个问题,这些列的数据类型是相同的,还是会像有时是
Integer
time
Date
或其他什么一样发生变化。
this.sessionFactory.getCurrentSession().getNamedQuery("sql")
                .setParameter("COLUMN_NAME", "id");
    <sql-query name="sql">
       <return-scalar column="COLUMN_NAME" type="java.lang.String" />
       select :COLUMN_NAME from table.
    </sql-query>