2016-07-28 1 views
0

私は抽象クラスProductを持っていて、これはクラスTVPCで拡張されています。 PCとテレビの両方に属性productId(親クラスProductで共有)があります。私の継承戦略はTABLE_PER_CLASSです。私の質問は、PCまたはTVの場合でも、すべての製品を入手するにはどうすればいいですか? ProductRepositoryに 'findAllById()'のようなものがありますか?親クラスのすべての要素を受け取る方法は?

答えて

0

Product、Pc、Tvの3つのリポジトリを作成する必要があります。私はその例はありません(あなたはおそらくいくつかの修正が必要です)が、それに従わなければならないためです。このリポジトリ内のすべてのメソッドがPcRepositoryにしてTvRepositoryで、ProductRepositoryで利用できるようになります

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

    public T findById(Long id); 

} 

第一は、一般的な製品のリポジトリを作成します。

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

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

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

これは適切な実装でうまくいくはずです。

関連する問題