@Transactional only works when called from outside the bean.