Hier ist die Probe generische Repository Implementierung, die die Feder PagingAndSortingRepository erstreckt, Generisches JPA Repository in Spring-Boot implementieren - die in Feder Dienstleistungen für jede Einheit/Klassentyp
@NoRepositoryBean
public interface GenericRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID> {
public List<T> findByNamedQuery(String name);
public List<T> findByNamedQueryAndParams(String name, Map<String, Object> params);
public T findOneByNamedQuery(String name);
public T findOneByNamedQueryAndParams(String name, Map<String, Object> params);
}
autowired werden kannFabrik Bean Klasse,
public class GenericRepositoryFactoryBean<R extends JpaRepository<T, I>, T, I extends Serializable> extends
JpaRepositoryFactoryBean<R, T, I> {
@SuppressWarnings("rawtypes")
protected RepositoryFactorySupport createRepositoryFactory(EntityManager em)
{
return new MyRepositoryFactory(em);
}
private static class MyRepositoryFactory<T, I extends Serializable> extends JpaRepositoryFactory {
private final EntityManager em;
public MyRepositoryFactory(EntityManager em)
{
super(em);
this.em = em;
}
@SuppressWarnings("unchecked")
protected Object getTargetRepository(RepositoryMetadata metadata)
{
return new GenericRepositoryImpl<T, I>((Class<T>) metadata.getDomainType(), em);
}
protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata)
{
return GenericRepositoryImpl.class;
}
}
}
Implementierungsklasse,
Also, wenn ich versuche, GenericRepository in Dienste für verschiedene Typen wie Customer.java, Message.java usw. zu erzwingen, es erfordert mindestens eine Bean Typ der Schnittstelle GenericRepository. Dies funktioniert, wenn ich individuelle Repositories sowohl für den Kunden als auch für den Nachrichtentyp erstelle. Ohne das Erstellen mehrerer Repositories kann ich dies nicht implementieren.
Wenn 100 oder mehr Entity-Klassen haben, dann erstelle ich 100 von Repositories und was schlecht ist. Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt, dies zu tun.
Ich bin in genau der gleichen Situation. Hast du etwas gefunden, das dir hilft? Vielen Dank ! – Moltes
Habt ihr herausgefunden, wie man das umsetzt? Ich bin auch in derselben Situation. – Sannu