奇怪的hibernate createSQLQuery返回一个CHAR | Character但是String

Rav*_*ekh 2 java hibernate

我正在使用hibernate createSQLQuery,但它只返回第一个char.

tableName = 'select code, name from airports where excludeFromSearch = 0 order by name';
s.createSQLQuery(tableName).list();
Run Code Online (Sandbox Code Playgroud)

我在用:

  • Mysql的
  • 休眠3.2

快照:

在此输入图像描述

我用googled stackoverflow,forum.hibernate,atlassian

更新:我还检查了所有的hibernate查询日志甚至mysql查询日志都是一样的.

`code char(3)`  // <strike>might</strike> must cause problem as in screen shot
name varchar(100)
Run Code Online (Sandbox Code Playgroud)

Fre*_*red 6

您是否已尝试将Scalar设置为您的请求?

StringType stringTypeInstance = StringType.class.newInstance();

String tableName = 'select code, name from airports where excludeFromSearch = 0 order by name';

List<Object[]> result = s.createSQLQuery(tableName)
    .addScalar("code",stringTypeInstance)
    .addScalar("name",stringTypeInstance )
    .list();
Run Code Online (Sandbox Code Playgroud)