Autowired в реализации RowMapper устанавливает ноль - PullRequest
0 голосов
/ 10 октября 2018

У меня есть следующая реализация RowMapper (ChallengeRowMapper), в которой я пытаюсь внедрить другой RowMapper (ClaimsViewRowMapper):

  public class ChallengeRowMapper implements RowMapper<Challenge> {
        @Autowired
        @Qualifier("claimRowMapper1")
        private ClaimsViewRowMapper clMapper;
         .
         .
         @Override
    public Challenge mapRow(ResultSet rs, int rowNum) throws SQLException {
        LOGGER.debug("clMapper is:"+Boolean.toString(clMapper==null));//this prints true
         Challenge c=(Challenge)clMapper.mapRow(rs, rowNum); //getting NPE here
     }


    }

@ Autowired по какой-то причине не работает, и clMapper установлен как NULL.Вот другой RowMapper, который аннотирован как @Component.

@Component("claimRowMapper1")
public class ClaimsViewRowMapper implements RowMapper<Claim> {
}

Еще один момент, на который следует обратить внимание, это Challenge extends Claim.Оба rowMappers находятся в одном пакете.И этот пакет находится под путем сканирования компонента, так как другие DAO в пакете работают правильно с Autowired.Кто-нибудь может объяснить, почему здесь не работает автопроводка?

1 Ответ

0 голосов
/ 10 октября 2018

Аннотировали ли вы класс ChallengeRowMapper с помощью @Component?

...