Весеннее кеширование с помощью JPA - PullRequest
1 голос
/ 20 октября 2019

Я пытаюсь кешировать некоторые вызовы DAO, чтобы улучшить мою производительность с помощью кеша Spring, но это не работает для меня. Ниже приведен код, который я пробовал

Основной класс:


        @SpringBootApplication
        @EnableCaching
        @EnableAutoConfiguration
        public class Test{

            public static void main(String[] args) {
                SpringApplication.run(Test.class, args);
            }

        }

Класс обслуживания:


    @Transactional
    @Service
    public class ProjectService{

    @Cacheable("project")
        public Project validateProject(String resource) {

            Project project = projRepo.findByName(resource.trim());
            System.out.println("ProjectCache called");

            if (project != null) {
                return project;
            } else {
                project = new Project();
                project.setName(resource);
                return project;
            }

        }

    }

Класс DAO


    @Repository
    public interface IProjectRepository extends BaseRepository<Project> {

        Project findByName(@Param("projectName") String name);
    }

Модель

@Entity
@Table(name = "project")
@Data
@EqualsAndHashCode

    public class Project implements Serializable, ICommonEntity {

        private static final long serialVersionUID = 1L;

        @Id
        private Integer           id;

        private String            name;
}

Build.gradle


    compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:2.2.0.RELEASE
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-parent', version:'2.2.0.RELEASE'
    compile group: 'org.springframework.boot', name: 'spring-boot-starter', version: "2.0.4.RELEASE"
    compile group: 'org.springframework.boot', name: 'spring-boot-starter-cache', version: '2.2.0.RELEASE'

в консоли всегда печатается «ProjectCache selected»;

Пожалуйста, помогите мне кто-нибудь в этом

...