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 :
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();
	}
 
}
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
 
@Service
public class UserServiceImpl implements IUserService {
 
	@Inject
	private IUserDao userDao;
 
	@Transactional
	@Override
	public void create(UserModel user) throws TechnicalException, BusinessException {
		userDao.create(user);
	}
 
}