Adt 消息转换器 - INTEGERS 作为空值出现

Posted

技术标签:

【中文标题】Adt 消息转换器 - INTEGERS 作为空值出现【英文标题】:Adt message converters - INTEGERS come as nulls 【发布时间】:2013-02-22 14:03:09 【问题描述】:

我正在使用以下配置来处理带有 adt 有效负载的 OracleAQ...

<bean id="messageConverter"
   class="org.springframework.data.jdbc.jms.support.converter.oracle.MappingAdtMessageConverter">
  <constructor-arg>
    <bean class="org.springframework.data.jdbc.jms.support.oracle.StructDatumMapper"> 
      <constructor-arg index="0" value="MY_QUEUE"/>
      <constructor-arg index="1" value="MyMappedClass"/>
    </bean>
  </constructor-arg>
</bean>

问题是,在出队后,我在 java 端获得了具有 INTEGER 的字段的 null 值和其他字段的非 null 值。

MyMappedClass@649fe46f[
  id=<null>
  id2=<null>
  time=2013-02-22 14:57:11.0
  user=LUKAS
]

在队列表中,这些值作为非空值存在。

可能是什么原因。我预计映射不好,但我看不出有什么问题。 这些字段映射为 Types.INTEGER。

你知道可能是什么原因吗?

【问题讨论】:

【参考方案1】:

最后我发现生成的映射文件有错误。对于 Long 字段,我有 Integer setter。这就是转换过程中反射api将这些字段视为不可写的原因。所以这不是库版本或配置问题。

【讨论】:

以上是关于Adt 消息转换器 - INTEGERS 作为空值出现的主要内容,如果未能解决你的问题,请参考以下文章

如何使用空值将字符串转换为日期时间 - python,pandas?

ssis 空日期作为空值

从sql table处理PSCustomObject中的空值。无法转换对象

将现有工作空间中的项目从 ADT 转换为 Andmore

如何在纯脚本中使用镜头在 ADT 之间进行转换?

在 access 数据库中将 Null 转换为零