JSF Primefaces SelectOneMenu

Personne ne peut avoir qu'une seule voiture , mais dans le datatable je veux afficher toutes les voitures dans la liste, mais de sélectionner un utilisateur de la personne appartient. De cette façon, l'utilisateur peut mettre à jour toute personne de la voiture à la volée.

Disons que j'ai deux tables

Person

id 
name 
car_id

Cars

id
name

Idéalement , person devrait avoir Cars id primary clé, mais ce n'est pas le cas. De sorte que chaque personne a la voiture ,à droite.

Maintenant, je suis de l'affichage de la liste de person dans datatable par exemple

------------------------------------
Name | Car 
----------------------------------------
ABC | 1
DDD | 2

Mais je veux montrer comme :

------------------------------------
Name | Car 
----------------------------------------
ABC | Toyota
DDD | Ford

Le code existant :

<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>

Mais je veux faire quelque chose comme:

<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>

Si quelqu'un peut m'aider avec cela, je vais l'apprécie beaucoup.

  • Êtes-vous en utilisant certains outil ORM comme Hibernate? Ideally , person should have Cars id as primary key but that is not the case. So each person has car ,right. Je ne comprends pas cette déclaration, je pense que votre modèle est correct.
  • Oui , je suis en utilisant JPA Hibernate. En fait, j'ai similaires tables ,même si la Personne a voiture id, mais il n'a pas de clé primaire de la table de Voitures comme foriegn clé. Je sais que la conception de base de données n'est pas droit.
  • Le modèle est nier la possibilité qu'une personne de plus d'une voiture, il est souhaité? Je crois que votre modèle a besoin d'être plus raffiné ...
  • Thats droit , Une personne ne devrait avoir qu'une voiture ,mais je veux que les utilisateurs soient en mesure de changer la voiture à partir de la liste déroulante.
  • Si chaque personne a une seule voiture, le modèle est correct.
  • Cela présente un scénario intéressant: Si l'utilisateur a, voiture de 1 déjà et l'utilisateur B est situé à aussi propre voiture 1... est-ce valable? Il aura une incidence sur la logique de votre programme de validation. Devrait "prendre" les voitures seront proposées dans la liste? Quelle est l'exigence?

InformationsquelleAutor Makky | 2013-11-22