Bonjour,
Voudrais utiliser l'annotation @Transactional pour gérer mes transactions Hibernate.
Cependant, je suis obligé d'appeler la méthode openSession() car getCurrentSession() lève une exception.
Je voudrais savoir si cela est normal et quel peut être l'impact pour la gestion du pool de session.
Le problème est que actuellement, mes données ne sont pas insérées en base. Je n'ai aucune exception, juste aucune données, comme si il était de ma responsabilité de faire le commit, ce qui ne devrait pas être le cas.
Voici mon DAO :
Et mon service :
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 @Repository public class UserDaoImpl implements IUserDao { @Inject private SessionFactory sessionFactory; @Override public void create(UserModel user) throws TechnicalException { UserEntity entity = UserTranslator.toEntity(user); //Session session = sessionFactory.getCurrentSession(); Session session = sessionFactory.openSession(); session.persist(entity); session.close(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 @Service public class UserServiceImpl implements IUserService { @Inject private IUserDao userDao; @Transactional @Override public void create(UserModel user) throws TechnicalException, BusinessException { userDao.create(user); } }
Partager