Bonjour,

Si vous avez 5 min à me consacrer merci.
Je vous explique j'ai une bdd nommé ensam avec une table nommé fite.
J'ai un formulaire avec différents champs mais un en particulier un selectmanylistbox nommé listprog.

Mon souhait est de crée autant de lignes dans ma table fite qu'il y a d'items sélectionnés avec la colonne programme qui change en fonction de l'item sélectionné. Mon formulaire appelle la methode createnewfiche.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<h:selectManyListbox id="programme" value="#{fite.fite.listProgramme}" required="true" requiredMessage="The programme field is required." >
                    <f:selectItems value="#{fite.fiteItemsAvailableSelectManyProgramme}"/>
                </h:selectManyListbox>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public void create(Fite fite) {
        EntityManager em = null;
        try {
            em = getEntityManager();
            em.getTransaction().begin();
            em.persist(fite);
            em.getTransaction().commit();
        } finally {
            if (em != null) {
                em.close();
            }
        }
    }
 
    public void createnewfiche(Fite fite) {
        bdd=fite;
        List<String> list = fite.getListProgramme();
        int i = list.size();
        i=i-1;
        int j=0;
        while(j<=i){
        String prog=list.get(j);
        bdd.setProgramme(prog);
        create(bdd);
        j=j+1;
        }
    }
Lorsqu'il n'y a qu'un seul item de sélectionné, pas de soucis l'enregistrement s'effectue. Mais dès qu'il n'y en a plus que deux le premier est enregistré mais pas les autres et j'ai cette erreur :

org.hibernate.PersistentObjectException: detached entity passed to persist: ensam.Fite

merci de votre aide !!