Tôi có trường hợp sử dụng này.Tích hợp mùa xuân: khó khăn với giao dịch giữa 2 người kích hoạt
chuỗi đầu tiên:
<int:chain input-channel="inserimentoCanaleActivate" output-channel="inserimentoCanalePreRouting">
<int:service-activator ref="inserimentoCanaleActivator" method="activate" />
</int:chain>
Đây là mã tương đối:
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public EventMessage<ModificaOperativitaRapporto> activate(EventMessage<InserimentoCanale> eventMessage) {
...
// some Database changes
dao.save(myObject);
}
Tất cả đang làm việc tuyệt vời.
Sau đó, tôi có một chuỗi:
<int:chain id="onlineCensimentoClienteChain" input-channel="ONLINE_CENSIMENTO_CLIENTE" output-channel="inserimentoCanaleActivate">
<int:service-activator ref="onlineCensimentoClienteActivator" method="activate" />
<int:splitter expression="payload.getPayload().getCanali()" />
</int:chain>
Và activator tương đối:
@Override
public EventMessage<CensimentoCliente> activate(EventMessage<CensimentoCliente> eventMessage) {
...
// some Database changes
dao.save(myObject);
}
Các CensimentoCliente
tải trọng như mô tả dưới đây có List
của tải trọng của chuỗi đầu tiên, vì vậy với một splitter tôi chia nhỏ trong danh sách và sử dụng lại mã của chuỗi đầu tiên.
public interface CensimentoCliente extends Serializable {
Collection<? extends InserimentoCanale> getCanali();
void setCanali(Collection<? extends InserimentoCanale> canali);
...
}
Nhưng vì mọi người kích hoạt đều có định nghĩa giao dịch của anh ấy (vì người đầu tiên có thể sống mà không có người thứ hai) Tôi có trường hợp sử dụng khi giao dịch được tách ra.
Mục đích là để có db sửa đổi của hai chuỗi là một phần của cùng một giao dịch.
Bất kỳ trợ giúp nào?
Kind coi Massimo
Bạn đã bao giờ tìm thấy một giải pháp? – dMcNavish
Không ........... –