Mettre à jour un entity à partir d'une rich:comboBox
Bonjour,
Je rencontre des difficultés pour mettre à jour un bean entity à partir d'une rich:comboBox. J'ai réussi à mettre en oeuvre le procédé à l'aide d'une rich:suggestionbox :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<h:inputText id="name" required="true"
value="#{appellationHome.instance.name}" />
<rich:suggestionbox for="name" var="result"
suggestionAction="#{appellationList.autocomplete}">
<h:column>
<h:outputText value="#{result.name}" />
</h:column>
<a:support ajaxSingle="true" event="onselect">
<f:setPropertyActionListener value="#{result}"
target="#{bottleHome.instance.appellation}" />
</a:support>
</rich:suggestionbox> |
La méthode autocomplete est la suivante :
Code:
1 2 3 4 5 6 7 8
|
private static final String EJBQL = "select appellation from Appellation appellation";
@SuppressWarnings("unchecked")
public List<Appellation> autocomplete(Object object) {
String query = this.getEjbql() + " where lower(appellation.name) like concat(lower('" + object.toString() + "'),'%') order by name";
return this.getEntityManager().createQuery(query).getResultList();
} |
La différence fondamentale de comportement entre les deux composants est qu'avec la suggestionbox, on peut travailler directement sur une liste d'entités, alors qu'avec la comboBox, il faut récupérer une liste de String (appellation.name). Je ne vois pas comment réaliser ça de façon propre.
Si quelqu'un pouvait me donner une piste, j'apprécierais vraiment :)