我正在調用基於請求類型返回結果集中不同數據的過程。 爲此,我使用stored-proc-outbound-gateway。 請求類型傳遞給過程,但在映射器內部不可用。基於有效負載的彈簧集成返回結果集
我可以使用ColumnMetaData來處理resultSet,但我更喜歡具有特定的請求類型映射器。 其他解決方案是具有儘可能多的請求類型的網關,但也許有更好的。
我可以根據有效載荷指定要使用哪個映射器:stored-proc-outbound-gateway?
我正在調用基於請求類型返回結果集中不同數據的過程。 爲此,我使用stored-proc-outbound-gateway。 請求類型傳遞給過程,但在映射器內部不可用。基於有效負載的彈簧集成返回結果集
我可以使用ColumnMetaData來處理resultSet,但我更喜歡具有特定的請求類型映射器。 其他解決方案是具有儘可能多的請求類型的網關,但也許有更好的。
我可以根據有效載荷指定要使用哪個映射器:stored-proc-outbound-gateway?
那麼,說實話,如果我是你,我真的會爲特定類型製作單獨的組件。在未來,邏輯可能會更復雜,並且修改特定功能比試圖找出如何提出所有這些if..else
更容易。
不過你的要求是不同的......
正如你看到的只有一個可能鉤你在那裏 - RowMapper
注射特定的程序PARAM。
我可以建議像RoutingRowMapper
這樣的解決方案,它會諮詢一些ThreadLocal
變量來選擇合適的RowMapper
委託。
這個想法是從AbstractRoutingDataSource
拿起。 Spring AMQP中還有類似SimpleRoutingConnectionFactory
的東西。
ThreadLocal
你可以在stored-proc-outbound-gateway
之前填充,這真的可以是你想要的類型。
另一個技巧可能是基於ResultSet
包含一個提示,其目標RowMapper
可供選擇的過程的結果。
以任何方式您的任務只能通過複合RowMapper
來實現。 stored-proc-outbound-gateway
沒有任何邏輯來解決,也不會。這不是它的責任。
謝謝澄清。 我已經提出了不同的請求類型處理器。 我同意,在RowMapper內部作出決定是更清潔的解決方案。 – Ving