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);
}
Şöyle yaparız.public interface DerivedRepository extends BaseRepository<User> { /* ... */ }
ÖrnekElimizde şö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