2016-07-28 18 views
0

Ich habe abstrakte Klasse Product, die TV und PC nach Klasse erweitert wird. Sowohl PC als auch TV haben das Attribut productId (geteilt über die Elternklasse Product). Meine Vererbungsstrategie lautet: TABLE_PER_CLASS. Meine Frage ist: wie kann ich alle Produkte bekommen, obwohl es oder TV ist? Gibt es so etwas wie 'findAllById()' im ProductRepository?Wie erhalten Sie alle Elemente der Elternklasse?

Antwort

0

Sie müssen 3 Repositories erstellen, Produkt, PC und TV, ich bin mir nicht sicher, dass dies für Sie arbeiten wird, weil ich kein Beispiel habe (Sie brauchen vielleicht etwas reparieren), aber es ist die Principles Sie folgen müssen.

erste Generikum Repository erstellen:

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

    public T findById(Long id); 

} 

Alle Methoden in diesem Repository werden in der ProductRepository im PcRepository und im TvRepository zur Verfügung.

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

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

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

und dies sollte für Sie mit guter Umsetzung arbeiten!

Verwandte Themen