Bonjour,

Je fais un insert dans une table par la commande :
executeUpdate (INSERT ...)
L'Insert fonctionne bien, cependant j'aurais besoin de récupérer la clef générée lors de cet Insert.
J'ai donc essayé par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Statement st = connLogistique.createStatement();
		st.executeUpdate("INSERT INTO Livraison (ncom, ncli, nomclient, adresseclient) VALUES ("+ncom+","+ncli+",'"+nomclient+"','"+adresseclient+"')",Statement.RETURN_GENERATED_KEYS); 
		//Les clefs auto-générées sont retournées sous forme de ResultSet
		ResultSet rs = st.getGeneratedKeys();
cependant dès que je rajoute ce parametre : Statement.RETURN_GENERATED_KEYS j'ai cette exception :

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
 
javax.transaction.TransactionRolledbackException: null; nested exception is: 
	java.lang.UnsupportedOperationException
.......
Caused by: java.lang.UnsupportedOperationException
	at sun.jdbc.odbc.JdbcOdbcStatement.executeUpdate(JdbcOdbcStatement.java:1464)
	at metier.LogistiqueBeanBean.creationLivraison(LogistiqueBeanBean.java:126)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:629)
	at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
	at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72)
	at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
	... 53 more
Quelqu'un sait pourquoi? y'a t'il une autre solution pour savoir la valeur de la clef générée?

merci,