У меня есть база данных с 2 таблицами CD
и Song
. Сессионный компонент получает доступ к классам сущностей этих двух таблиц. В моем бэк-бине у меня просто есть String cd
и HashMap<CDName, CDName> cds
, которые будут хранить список возвращенных CD с моего сессионного боба, поэтому в JSF я бы сделал что-то подобное.
<h:selectOneMenu id="cd" value="#{backingBean.cd}">
<f:selectItem itemLabel="Select CD" itemValue="" />
<f:selectItems value="#{backingBean.cds}" />
</h:selectOneMenu>
Это успешно загрузит список компакт-дисков в раскрывающийся список, и если я выберу компакт-диск, переменные cd
будут содержать имя выбранного компакт-диска. Это прекрасно работает, если CDName
уникален. Но, к сожалению, это не так. Итак, я хочу HashMap<ID, CDName> cds
, где ID
- это PK в таблице CD
. Но теперь, как я могу его настроить, поэтому, когда я нажимаю на элемент из выпадающего списка CD, я получаю ID
обратно в свой backingbean, так что я могу сделать что-то подобное в моем сессионном компоненте
CD cd = EntityManager.find(CD.class, the id that I get back from JSF page)
по сути, я хочу получить объект cd
, на который я просто нажимаю, имейте в виду, что может быть дублирование. Если мой дизайн плохой, пожалуйста, укажите. Помогите, пожалуйста. Заранее спасибо