【问题标题】:retrieve Hex string using MyBatis使用 MyBatis 检索十六进制字符串
【发布时间】:2019-05-24 01:00:29
【问题描述】:

我正在使用 Vertica 和 MyBatis。

  1. 我在 Vertica 中将二进制信息存储为长 varbinary 列
  2. 我想以十六进制形式检索它,所以我在映射器中有这段代码

<resultMap id="data" type="some_table_name">
        <result property="long_varibary_column" column="long_varibary_column" />
    </resultMap>

<select id=“getlong_varibary_column” resultMap=“data”>

Select to_hex(long_varibary_column)
From some_table_name
Limit 1
</select>
  1. 在我使用的模型中

Public class some_table_name{

 String long_varibary_column;

  Public void setLong_varibary_column(String long_varibary_column){this. long_varibary_column= long_varibary_column;}
}

我在模型中使用了字符串,因为查询有to_hex(long_varibary_column),即使列 long_varbinary_column 实际上是表中的 Long varbinary。

当我获取数据时,我得到 Null。

我什至尝试使用byte[] instead of String long_varibary_column,但我还是得到了 Null。

有什么线索吗?

【问题讨论】:

  • 您是否尝试过指定列别名?即to_hex(long_varibary_column) as long_varibary_column
  • @ave 没有运气
  • 使用列别名,它对我有用。这是一个可执行文件demo
  • @ave 非常感谢!您的解决方案有效。请您回答这个问题,以便我接受并支持您的回答。
  • 完成。很高兴知道它有效! =)

标签: blob mybatis vertica varbinary


【解决方案1】:

要通过列名引用结果,您需要为其分配别名。

select to_hex(long_varibary_column) long_varibary_column
from some_table_name
limit 1

这是demo

【讨论】:

    猜你喜欢
    • 2010-10-04
    • 2014-03-07
    • 2019-07-27
    • 2014-03-26
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 2010-12-02
    • 2018-03-05
    相关资源
    最近更新 更多