Comment obtenir de la source de données ou une Connexion de JPA2 EntityManager dans Java EE 6
J'ai une application de travail où j'utilise Java EE 6 avec EclipseLink de persistance et d'une base de données PostgreSQL.
Pour l'Utilisateur-Enregistrement je veux le mot de passe dans PostgreSQL:
... password = crypt('inputPassword',gen_salt('bf')) ...
Que je ne peux utiliser DigestUtils pour cela, je dois insérer l'utilisateur manuellement dans la base.
Pour garder mon application configurable je ne veux pas de requête de la source de données avec un
InitialContextInstance.lookup(dataSource)
mais pour l'extraire (ou le lien) en quelque sorte de l'EntityManager
comme:
DataSource ds = entityManagerInstance.someFunctionThatReturnsADataSourceOrConnection();
Ou serait-il possible d'utiliser createNativeQuery ou quelque chose de semblable dans conjuntion
avec une déclaration préparée pour se protéger contre les injections?
@Resource(name="myDb") DataSource myDB
. N'est-ce pas? Et je pense que vous pouvez définir parametirized requêtes avec JPA.oui, ça pourrait marcher, mais j'ai toujours de connaître le nom. Je veux obtenir la configuration par défaut de la source de données pour l'injection d'une EntityManager.
OriginalL'auteur zuloo | 2013-06-07
Vous devez vous connecter pour publier un commentaire.
il suffit parfois d'une autre course dans google:
comme décrit dans la Eclipse Lien De La Documentation
est-il possible d'obtenir le mot de passe à partir de cette connexion
Ne fonctionne pas en mode veille prolongée.
bonne réponse de travailler sur JPA + JTA (Java SDK 8u31) + WebSphere 8.5.5
OriginalL'auteur zuloo
En réponse à "Archimède Trajano" commentaire de la accepté de répondre, ne l'accepté de répondre pour les autres que Eclipselink? La réponse est non pour au moins Hibernate.
J'ai eu l'erreur suivante quand j'ai essayé de la accepté de répondre à hibernate:
Une combinaison de réponses parmi les suivantes stackoverflow questions m'a permis de trouver une solution qui fonctionne pour Hibernate.
Obtenir une Connexion JDBC objet d'un Stateless Bean
Hibernate obtenez de l'objet de Connexion pour JasperRunManager
Voici ma solution:
OriginalL'auteur dulon
Voici un extrait de code qui fonctionne avec Hibernate 4, basé sur dulon la réponse de
OriginalL'auteur uvperez