Методы Jpa Query для Spring Data не вызывают repositoryBaseClass - PullRequest
0 голосов
/ 30 октября 2019

У меня есть базовый класс репозитория, как определено ниже.

@NoRepositoryBean
public interface BaseRepository<T, ID extends Serializable> extends JpaRepository<T, ID> {
}
public class BaseRepositoryImpl<T, ID extends Serializable> 
    extends SimpleJpaRepository<T, ID> implements BaseRepository<T, ID> {

    public BaseRepositoryImpl(JpaEntityInformation<T, ?> entityInfo, EntityManager entityMgr) {
        super(entityInfo, entityMgr);
    }

    // ...
}
@Configuration
@EnableJpaRepositories(basePackages = "org.example", 
    repositoryBaseClass = BaseRepositoryImpl.class)
public class BaseConfig {
    // additional JPA Configuration
}

Я определил класс бизнес-репозитория и метод запроса, как показано ниже.

@Repository
public interface CarRepository extends BaseRepository<Car, Long> {
    @Query("SELECT c FROM Car c Where active = 1")
    List<Car> findAllActiveCars();
}

У меня есть тестовый класс, который вызывает findAllActiveCars (). Я получаю ожидаемые результаты. Но этот метод запроса не вызывает ни один из методов в классе BaseRepository. Как настроить возвращаемые значения методов запроса?

1 Ответ

0 голосов
/ 30 октября 2019

Вы не показывали методы, которые вы реализовали, поэтому неясно, почему они не вызываются, но, поскольку вы хотите расшифровать поля сущностей, рассмотрите возможность прослушивания событий жизненного цикла сущностей JPAs. @PostLoad должен быть в состоянии сделать трюк.

https://docs.jboss.org/hibernate/core/4.0/hem/en-US/html/listeners.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...