0

我正在尝试执行本机查询并传递运行时参数并将结果作为列表获取。当我尝试处理 Object [] 时,提取的列之一是字符串。但它以 java.lang.Character 而不是 String 的形式出现。这是下面的查询:

SELECT CASE
         WHEN (TRUNC(abm.credit_card_expiration_date) BETWEEN trunc(SYSDATE) AND
              trunc(last_day(SYSDATE))) THEN
          'Expires'
         ELSE
          'Expired'
       END EXP_STATUS,
       TO_CHAR(abm.credit_card_expiration_date, 'MM/YY') EXP_DATE
  FROM account_billing_methods abm
 WHERE abm.account_id = 201103
   AND abm.billing_type_id = 1
   AND TRUNC(abm.credit_card_expiration_date) <= TRUNC(LAST_DAY(SYSDATE))

EXP_STATUS 列无法转换为字符串,因为它是字符类型。关于为什么它不起作用的任何想法?

问候,-阿南德

4

1 回答 1

1

我遇到了同样的问题,并将查询的 select 子句更改为: EXP_STATUS || '' as EXP_STATUS

然后它是 VARCHAR 而不是 CHAR,JPA 会将其作为字符串而不是字符返回。

如果有人知道更好/更优雅的解决方案,如果您能分享它,我将不胜感激。

于 2012-03-28T12:31:20.390 回答