Bonjour,
je développe une appli EJB3.
Jusqu'a présent j'utilisais pour mon contexte :
Et tout fonctionnait tres bien, pas de probleme pour gerer les bases de donnée et persistence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @Stateful public class PassengerManagerBean implements PassengerManagerRemote { @PersistenceContext EntityManager manager; ...
Maintenant je veux compliquer un peu et ajouter des transanctions et c'est la que ca bloque.
J'ai tenté plusieurs configurations de persistence mais a chaque fois je rencontre une erreur. Voila mon code :
Comme vous pouvez le voir, je gere pas encore les transactions car mon manager n'arrive plus a persister dans la base l'erreur étant :
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30 @Stateful public class PassengerManagerBean implements PassengerManagerRemote { // @PersistenceContext // EntityManager manager; // EntityTransaction transact = manager.getTransaction(); @PersistenceUnit(unitName="Airlines-ejbPU") private EntityManagerFactory factory ; private EntityManager manager; private EntityTransaction transact; ..... public PassengerManagerBean() { factory =Persistence.createEntityManagerFactory("Airlines-ejbPU"); manager = factory.createEntityManager( ); transact = manager.getTransaction( ); } ... public void persist_passenger(){ passenger.setAddress(address); passenger.setPhone(ListNumber); manager.persist(passenger); ... }
la ligne 87 est celle ou il y a "manager.persist(passenger);"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Caused by: java.lang.IllegalArgumentException: Object: airlines.entity.Passenger@1f566bc is not a known entity type. at oracle.toplink.essentials.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:3178) at oracle.toplink.essentials.internal.ejb.cmp3.base.EntityManagerImpl.persist(EntityManagerImpl.java:170) at airlines.bean.PassengerManagerBean.persist_passenger(PassengerManagerBean.java:87)
Il s'agit en fait du premier persist que je fais sur mon manager.
je suis donc a la recherche de quelques explications sur la gestion de mon manager et comment faire pour le créer correctement et qu'il puisse gérer des transactions.
Merci
Partager