bonjour,
une des solutions pour faire de la proc stock en jpa est de récupérer une connection standard (java.sql.Connection) et d'utiliser les callableStatement.
Pour récuperer cette connection j'utilise le code suivant : (je suis en EclipseLink)
Mais la variable dbConnection vaut toujours null alors que mon entityManager est correct puisque je l'utilise dans d'autres contextes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 AbstractSession session = (AbstractSession) ((JpaEntityManager) em).getActiveSession(); Connection dbConnection = session.getAccessor().getConnection();
Pour info , j'ai ma propre classe pour créer la datasource de l'entity manager:
Cette classe permet entre autre de trouver le jndi datasource de weblogic ou tomcat.public class JpaEclipseLinkSessionCustomizer implements SessionCustomizer
..........................
Je créer donc dans cette classe la datasource a partir de jndi, et affecte le datasource a la session . Ca fonctionne parfaitement :
connector.setDataSource(dataSource);
connector.setLookupType(JNDIConnector.STRING_LOOKUP);
JNDIConnector writeConnector = (JNDIConnector) session.getLogin().getConnector();
writeConnector.setLookupType(JNDIConnector.STRING_LOOKUP);
JNDIConnector readConnector = (JNDIConnector) ((DatabaseLogin) ((ServerSession) session).getReadConnectionPool().getLogin()).getConnector();
readConnector.setLookupType(JNDIConnector.STRING_LOOKUP);
// Set the new connection on the session
session.getLogin().setConnector(connector);
Une idée ?
Merci
Partager