Compared to dealing with a unidirectional functional association, as discussed in the previous section, we have to deal with the following new technical issues:
In model classes we now have to take care of multi-valued reference properties that have to be annotated with @OneToMany
or @ManyToMany
.
In the user interface code we now have to take care of
showing information about a collection of associated objects in the view table columns that render multi-valued reference properties in the retrieve/list all objects use case;
allowing to select a collection of associated objects from a list of all existing instances of the target class in the create object and update object use cases.
The last issue, allowing to select a collection of associated objects from a list of all existing instances of some class, in general, cannot be solved with the help of an HTML select multiple
form element because of usability problems. Whenever the set of selectable options is greater than a certain threshold (defined by the number of options that can be seen on the screen without scrolling), the HTML select multiple
element is no longer usable, and an alternative multi-selection widget has to be used.