Création d'un entity Manager pour transaction
Bonjour,
je développe une appli EJB3.
Jusqu'a présent j'utilisais pour mon contexte :
Code:
1 2 3 4 5 6
| @Stateful
public class PassengerManagerBean implements PassengerManagerRemote {
@PersistenceContext
EntityManager manager;
... |
Et tout fonctionnait tres bien, pas de probleme pour gerer les bases de donnée et persistence.
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 :
Code:
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);
...
} |
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:
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) |
la ligne 87 est celle ou il y a "manager.persist(passenger);"
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