@Transactional et gestion des sessions hibernate
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:
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:
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);
}
} |