Bonjour,
J'essaie en ce moment de passer de JBoss à Glassfish et on peut dire que je galère bien à le configurer (première fois que je dois me faire une config seul).
Après bien des déboires, je suis en mesure de faire des appels à ma bdd MySQL via la méthode createNativeQuery de l'EntityManager. Seulement, je ne peux pas utiliser ses autres méthodes (persist bugué, syntaxe JPQL dans createQuery non reconnue, syntaxe permettant de créer des requêtes paramétrées non reconnue...). Par exemple quand je fais un persist j'obtiens :
org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'test.sequence' doesn't exist
Error Code: 1146
Call: UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?
bind => [2 parameters bound]
Query: DataModifyQuery(name="SEQUENCE" sql="UPDATE SEQUENCE SET SEQ_COUNT = SEQ_COUNT + ? WHERE SEQ_NAME = ?")
Voici mon persistence.xml :
La ressource MySQLDataSource a été créée à la main en suivant les instructions disponibles à cette adresse :
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 <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="bdd_test_PU" transaction-type="JTA"> <jta-data-source>jdbc/MySQLDataSource</jta-data-source> <class>beans.Customer</class> <properties> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> </properties> </persistence-unit> </persistence>
http://dev.mysql.com/doc/connector-j...sh-config.html
Remarque : j'ai créé un projet Test pour vérifier le bon fonctionnement de l'installation. Ce projet contient un EJB avec une méthode persist qui demande un EntityManager via @PersistenceContext, une servlet qui dispose de cet ejb grâce à @EJB, et un @Entity Customer. Quand je déploie l'application aucune table n'est créée dans ma base (pas même la table customer).
Ca fait 2 jours et demi que j'essaie de faire fonctionner ça, si vous avez des pistes je suis très très très preneur, merci d'avance !
Partager