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.