For some reason my Autowired is not working in my case. class MyService is used in an Controller and I always get a NullPointerException because userDao is null. I put the classes in different packages but Spring does not inject it. Also the Transaction does not work. I intentionally assign null to an attribute in holiday which causes an Exception but still User table is not rolled back. Please help me.
@Service
@Configurable
public class MyService {
@Autowired
UserDao userDao;
@Autowired
HolidayDao holidayDao;
@Transactional(isolation=Isolation.READ_COMMITTED, propagation=Propagation.REQUIRED,readOnly=false,timeout=1000, rollbackFor=Exception.class)
public void saveUserAndHoliday(User user, Holiday holiday)
{
userDao.save(user);
holiday.setOvertime(null);
holidayDao.save(holiday);
}
}
This is userDao class. I use it basically in every Controller class but there it works to be injected. Why not in this service class.
@Repository
public interface UserDao extends JpaRepository<User, Long> {
User findByUserName(String userName);
User findById(long id);
}