2016-07-28 4 views
0

У меня есть абстрактный класс Product, который распространяется на класс TV и PC. И у ПК, и у телевизора есть атрибут productId (разделяемый с помощью родительского класса Product). Моя стратегия наследования: TABLE_PER_CLASS. Мой вопрос: как я могу получить все продукты, несмотря на то, что его PC или TV? есть что-то вроде «findAllById()» в ProductRepository?Как получить все элементы родительского класса?

ответ

0

Вы должны создать 3 хранилища, продукт, компьютер и телевизор, я не уверен, что это сработает для вас, потому что у меня нет примера (вам может понадобиться какое-то исправление), но его принцессы вам нужно следовать.

первый создать общий репозиторий продукта:

@NoRepositoryBean 
public interface ProductBaseRepository<T extends Product> 
extends CrudRepository<T, Long> { 

    public T findById(Long id); 

} 

Все методы в этом хранилище будут доступны в ProductRepository, в PcRepository и в TvRepository.

@Transactional 
public interface ProductRepository extends ProductBaseRepository<User> { /* ... */ } 

@Transactional 
public interface PcRepository extends ProductBaseRepository<Pc> { /* ... */ } 

@Transactional 
public interface TvRepository extends ProductBaseRepository<Tv> { /* ... */ } 

, и это должно сработать для вас с хорошей реализацией!

Смежные вопросы