У человека может быть только один автомобиль, но в datatable я хочу отобразить все автомобили в списке, но выберите одного пользователя. Таким образом, пользователь может обновить автомобиль любого человека на лету.JSF Primefaces SelectOneMenu
Пусть говорят, у меня есть два tables
Person
id
name
car_id
Cars
id
name
В идеале person
должен иметь Cars
идентификатор в качестве primary
ключа, но это не так. Поэтому у каждого человека есть машина, верно.
Теперь я показываю список person
в datatable, например.
------------------------------------
Name | Car
----------------------------------------
ABC | 1
DDD | 2
Но я хочу, чтобы показать, как:
------------------------------------
Name | Car
----------------------------------------
ABC | Toyota
DDD | Ford
Существующий код:
<p:dataTable value="#{test.persons} var="person">
<p:column headerText="Name">
#{person.name}
</p:column>
<p:column headerText="Name">
#{person.carID}
</p:column>
</p:dataTable>
Но я хочу сделать что-то вроде:
<p:dataTable value="#{test.persons} var="person">
<p:column headerText="Name">
#{person.name}
</p:column>
<p:column headerText="Car">
<p:selectOneMenu value="#{test.selectedCar}"
converter="entityConverter">
<f:selectItems value="#{spMBean.cars}" var="car"
itemLabel="#{car.name}" itemValue="#{car}" />
</p:selectOneMenu>
</p:column>
</p:dataTable>
Если кто-то может помоги мне в этом, я буду очень признателен.
Вы используете какой-то инструмент ORM, например Hibernate? «В идеале, человек должен иметь идентификатор автомобилей как первичный ключ, но это не так. Поэтому у каждого человека есть машина, правильно. «Я не понимаю этого утверждения, я думаю, что ваша модель правильная. –
Да, я использую JPA Hibernate. На самом деле, у меня есть похожие таблицы, хотя у человека есть идентификатор автомобиля, но у него нет первичного ключа таблицы Cars в качестве ключа foriegn. Я знаю, что дизайн базы данных неверен. – Makky
Модель лишает человека возможности иметь более одного автомобиля, это желательно? Я считаю, что ваша модель должна быть более утонченной ... –