从Hibernate获取动态SQL列名

Asc*_*ian 6 java sql hibernate

我有一个Oracle表,里面有一个CLOB.在这个CLOB里面可以是一个SQL语句.这可以随时更改.

我目前正在尝试动态运行这些SQL语句并返回列名和数据.这用于在网页上动态创建表.

使用Hibernate,我创建查询并获取如下数据:

List<Object[]> queryResults = null;
SQLQuery q = session.createSQLQuery(sqlText);
queryResults = q.list();
Run Code Online (Sandbox Code Playgroud)

这将获取我需要的数据,但不会获取列名称.我已经尝试使用该getReturnAliases()方法,但它抛出一个错误,"java.lang.UnsupportedOperationException:SQL查询当前不支持返回别名"

所以我的问题是:Hibernate有没有办法动态获取这些值?

use*_*063 13

您可以使用 :

q.setResultTransformer(AliasToEntityMapResultTransformer.INSTANCE);
List<Map<String,Object>> aliasToValueMapList=query.list();
Run Code Online (Sandbox Code Playgroud)

在createSQLQuery中获取列名.

有关详细信息,请参阅问题.