# Java > Gnral Java > Persistance des donnes >  Erreur lors de la persistence JPA+PostgreSQL

## imer5

Bonjour,

Je viens vous demander de l'aide parce que je ne trouve plus aucun moyens sur le net.

Je veux persister sur une BD Postgresql, j'ai modifi le persistence.xml, rajouter un fichier postgresql-ds.xml dans le server/default/deply, rajout le driver postgres dans le server/lib/

La cration des tables se fait bien, mais quand je veux persister j'ai une jolie erreur et je ne peux rien ajouter dans la BD.

Voici l'erreur:


```

```

voici le persistence.xml


```

```

le postgresql-ds.xml


```

```

enfin le code d'insertion


```

```

Un grand merci  ::D:

----------


## willoi

Fais voir ta classe Utilisateur !
Apparement elle n'est pas Serializable.

----------


## imer5

```

```

Justement dans les bouqins c'est crit qu'il faut que se soit serializable mais dans les exemple a n'est jamais serializable!

Sinon j'ai vu sur d'autres forum que a pourrait tre mal rfrenc ici:


```
CompteDAO lecompte = (CompteDAO) ctx.lookup("CompteDAOBean/remote");
```

Du coup j'ai rajout le nom du package appartentant aux bean comme ceci:


```
CompteDAO lecompte = (CompteDAO) ctx.lookup("dao/CompteDAOBean/remote");
```

du coup j'ai cette erreur


```
javax.naming.NameNotFoundException: dao not bound
```

----------


## willoi

Il te manquerait pas un :



```
<class>entities.Utilisateur </class>
```

dans ton persistence.xml ?

----------


## imer5

D'aprs ce que j'ai compris l'attribut class n'est pas obligatoire? J'ai essay et j'ai toujours le meme probleme.

----------


## willoi

Tu as bien defini ta classe Projet ?

----------


## imer5

voici mon persistence.xml actuel


```

```

La BD se cre toujours automatiquement, mais a bloque  la persistence

----------


## willoi

Sur quelle ligne ca plante ?

Dans ta methode ajouteUtilisateur ?
Si c'est le cas fais voir cette methode.

----------


## imer5

oui c'est exactement ici que a plante, la methode fait juste un persist avec un objet utilisateur mais comme s'il ne connaissait pas cette objet


```

```

Edit: c'est mme pas sur le persist comme vous pouvez le voir puisque j'ai comment la ligne, y a une rfrence qui passe pas.

Je suis dans deux packages diffrents, mais je ne pense pas que a pose probleme?
Quand j'interroge avec cette ligne 

```
CompteDAO lecompte = (CompteDAO) ctx.lookup("CompteDAOBean/remote");
```

 j'ai l'erreur java.lang.reflect.UndeclaredThrowableException
	at $Proxy0.ajoutUtilisateur(Unknown Source)
Quand j'interroge avec le nom du package sans grande conviction 

```
CompteDAO lecompte = (CompteDAO) ctx.lookup("dao/CompteDAOBean/remote");
```

j'ai javax.naming.NameNotFoundException: dao not bound

Sinon je suis en remote pour l'interface (j'ai test local) et le bean en stateless

----------


## imer5

j'ai essay un autre code d'insertion


```

```

et j'ai l'erreur suivante


```

```

La ligne  23 correspond  context.lookup("CompteDAOBean/remote");
a viendrait de mon JNDI, 'ai regard dans la console mais j'arrive pas trop  interprter

----------


## willoi

Attends l c'est plusla meme erreur !!!!
Tu as chang quelque chose.

----------


## imer5

j'ai chang la faon d'interroger le context et le lookup rien de plus. La class java que j'excute pour persister mes donnes...

----------


## willoi

Et c'est toujours sur cette ligne que ca plantait ?

----------


## imer5

non dans l'autre cas c'etait lors de l'appel de l'interface, la c'est lors du contexte

----------


## willoi

et cette interface CompteDAO, elle ressemble a quoi ?

----------


## imer5

J'aurai tout post lol, mais encore merci de m'aider, la voici


```

```

J'ai fais un projet web dynamique avec servlet+jsp et a bloc bien lorsque j'appel ajoutUtilisateur avec la mme erreur (celle du proxy)


```

```

----------


## willoi

Oui autant pour moi, mais je m'y perds un peu.

ce qui m'etonn c'est cette annotation :


```
@Id @GeneratedValue
```

Ton id est gener, mais pourtant tu le sette avec un :


```
unUser.setIdUtilisateur(2);
```

Si il est gnr, ton setId devrait etre private, non ? et en plus il a du declarer un generateur dans postgreSQL

----------


## imer5

oui je suis d'accord avec toi, cette phase de test tait parce que je ne vois plus quoi faire mais apparement a ne cause pas plus de problme de l'attribuer  la main

----------


## imer5

Bon j'ai trouv apres de longues heures et pour une solution en 3 lignes, je poste:
Dans mon Bean avant je faisais:


```

```

en fait il faut faire, mais je ne sais pas vraiment pourquoi:



```

```

Pour rsumer il ne faut pas passer un objet (surement d  la srialization d'ailleurs) mais les attribut qu'on set ensuite. 
Si quelqu'un  plus de prcision la dessus je suis quand meme preneur.

Merci

----------


## willoi

Ca me semble bizarre ton truc.ca doit etre autre chose, car je fais courament passer mes objets en parametre et ce ne me pose pas ce probleme.
Ca doit etre li a ton id gnr.Car tu lui faisais un setId sur une valeur inexistante. Donc embrouille dans les identifiants pour Hibernate.

----------


## imer5

Encore une fois le setId je l'ai test qu'une fois c'est tomb dans un copier/coller que j'ai post sur le forum et le rel changement que j'ai fais c'est dans ce que je dcris prcdemment.

Edit: je viens aussi de tester en forant le setId, a ne passe pas mais avec une autre erreur mais je suis d'accord c'est pas mon but de forcer l'id vu que que je l'ai mis en auto

----------

