Я хочу написать функции, которые действуют на классы, например, начиная с Spring JpaRepository<TestEntity, Integer>
.
Я пытался: Entity:
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class TestEntity {
@Id
Integer a;
Integer b;
}
Repo:
import org.springframework.data.jpa.repository.JpaRepository;
public interface TestEntityRepository extends JpaRepository<TestEntity,Integer> {}
Класс обслуживания выглядит, например, так:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Service;
import javax.persistence.Entity;
import java.util.function.Function;
@Service
public class TestEntityService {
@Autowired
TestEntityRepository testEntityRepository;
private Function<? extends JpaRepository<? extends Entity, Integer>, Boolean> doSomeThing = integerJpaRepository ->
integerJpaRepository.findAll().isEmpty();
public Boolean dbIsEmpty(){
return doSomeThing.apply(testEntityRepository);
}
}
Однако в Intellij возникает ошибка:
apply (capture <? Extends org.springframework.data.jpa.repository.JpaRepository <? extends javax.persistence.Entity, java.lang.Integer >>) в функции нельзя применить к (.java_tests.database.TestEntityRepository)