@Bean
public JpaPollingChannelAdapter reimStgResponseJpaInboundAdapter() {
return Jpa
.inboundAdapter(entityManager)
.nativeQuery(responseQueryString)
//.expectSingleResult(true)
.get();
}
@Bean
public IntegrationFlow reimFeedbackHandle() {
return IntegrationFlows
.from("reimFeedbackChannel")
.handle(msg -> {
try {
dctmHandler.handleReIMFeedback(msg);
} catch (Exception e) {
e.printStackTrace();
}})
.get();
}
.expectSingleResult(true)
возвращает исключение, что ожидался 1 результат.
Собственный запрос — String responseQueryString = "select * from RMS16DEV.TSC_IM_DOC_HEAD_TEMP where error_ind is not null"
;
Сообщение от входящего адаптера представляет собой список массивов, и я не могу преобразовать его в правильный объект. Какой тип возвращается входящим адаптером jpa в канал?
public void handleReIMFeedback(Message<?> reimStgRowMsg) throws Exception {
List<TSC_IM_DOC_HEAD_TEMP> list = (List<TSC_IM_DOC_HEAD_TEMP>) reimStgRowMsg.getPayload();
System.out.println( (list.get(0)));
}
дает мне:
java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class java.util.List ([Ljava.lang.Object; and java.util.List are in module java.base of loader 'bootstrap')
at tesco.finance.gss.dctmreim.jpa.handlers.DctmHandlers.handleReIMFeedback(DctmHandlers.java:28)
`