У меня проблема с архитектурой со следующим вариантом использования.
У меня есть страница JSF для создания объектов JPA, например заказов.
Сущность Order имеет два поля: invoiceRecipient и получатель. Оба типа Заказчик.
В форме заказа есть два поля, каждое с кнопкой, которая открывает список выбора для выбора клиента из customerSelectionController.
когда клиент выбран, bean-компонент customerSelectionController делает что-то вроде:
@Inject
@Selected
Event<Customer> customerSelectedEvent;
public void select(Customer customer) {
customerSelectedEvent.fire(customer);
}
и orderFormController возвращает событие с
public void customerSelected(@Observes @Selected Customer customer) {
}
и вот в чем проблема ^^ Контроллер формы заказа знает, что клиент был выбран, но предназначен ли он для установки в качестве получателя счета или получателя заказа?
Я знаю, что вы могли бы указать более точные квалификаторы, такие как @SelectedAsInvoiceRecipient, но действительно ли это так, как это сделать?
Должен ли я скопировать bean-компонент customerSelectionController в качестве invoiceRecipientSelectionController и ReceiverSelectionController и позволить им обоим запускать объекты Customer с разной квалификацией?
Я также использую Apache Deltaspike, который поддерживает GroupedConversations и другие сложные вещи, но я не смог найти указанное правило, как этого добиться.
Спасибо за вашу помощь