Giriş
Repository olarak yüklenmesini istemediğiniz soyut sınıflara bu anotasyon eklenir. Genellikle  CrudRepository veya Repository arayüzünden kalıtan bir ata Repository arayüzü tanımlamak için kullanılır.
Örnek - Read-only Sadece View İçin Repository
Şöyle yaparız. Burada CrudRepository yerine Repository arayüzünden kalıtıyoruz.
@NoRepositoryBean
public interface ReadOnlyRepository<T, ID> extends Repository<T, ID> {
  List<T> findAll();0
  List<T> findAll(Sort sort);
  Page<T> findAll(Pageable pageable);
  Optional<T> findById(ID id);
  long count();
}
public interface XYZRepository extends ReadOnlyRepository<XYZView, Long> {
  List<XYZView> findByColumn(String column);
}Örnek
Elimizde şöyle bir kod olsun.
Elimizde şöyle bir kod olsun.
Elimizde şöyle bir kod olsun.
@NoRepositoryBean
public interface BaseRepository<T extends BasicEntity> extends CrudRepository<T, Long> {
  public T findByName(String name);
}public interface DerivedRepository extends BaseRepository<User> { /* ... */ }Elimizde şöyle bir kod olsun.
@NoRepositoryBean
public interface AbstractRepository 
        extends CrudRepository<T extends AbstractEquipment,Long>{
  @Query("select e from #{#entityName} as e from equipment where
    e.name = equipmentName")
  T findEquipmentByName(String equipmentName);
}
Şöyle yaparız.
@Transactional
public interface FooRepository extends AbstractRepository<SpecialEquipment,Long>{
}
 
Hiç yorum yok:
Yorum Gönder