Как я понимаю, вы делаете это (я сейчас удивляюсь чему-то подобному):
1) Определите новый интерфейс с помощью метода.
public interface CustomSomeClassRepo{
public SomeClass findByTxnId(Long id);
}
2) Интерфейс репо также расширяет этот интерфейс:
public interface SomeClassRepo extends CrudRepository<SomeClass, TransactionBean),
CustomSomeClassRepo{
//some stuff
}
Примечание. Я использую JpaRepository вместо CRUDRepository.
3) Написать класс реализации для метода в интерфейсе CustomSomeClassRepo. Он должен быть назван как интерфейс плюс добавление "Impl"
public class CustomSomeClassRepoImpl implements CustomSomeClassRepo{
@PersistenceContext
EntityManager em;
@Override
public SomeClass findByTxnId(Long id){
/* Here you run the Query you need using the EntityManager and the id.
and return an instance of SomeClass;
*/
}
}
@PersistenceContext
будет внедрять экземпляр EntityManager
.
4) Наконец, вы можете позвонить findByTxnId(Long id)
с экземпляра SomeClassRepo
.