Кэширование в EclipseLink - предотвращение повторных запросов с одинаковыми параметрами - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь создать проект с EclipseLink JPA и SpringBoot, и я настроил две сущности, как показано ниже:

class A{
     @OneToOne
     @JoinColumn(name = "UPDTR_ID", referencedColumnName = "PRSN_ID")
     private Person updater;

     @OneToOne
     @JoinColumn(name = "CREATR_ID", referencedColumnName = "PRSN_ID")
     private Person creator;

     @OneToOne
     @JoinColumn(name = "ASGNE_ID", referencedColumnName = "PRSN_ID")
     private Person assignee;

    ...

}

class Person{
    @Id
    @Column(name = "PRSN_ID")
    private String prsnId;

    ...


}

Когда я делаю findAll() в классе A, для каждой записи, которую я вижу, есть 3 запроса к таблице Person, даже когда один и тот же идентификатор присутствует во всех трех свойствах. Я предположил, что если идентификатор 1 будет извлечен из Person, если этот идентификатор используется в любом месте списка A s, он не будет запускать дополнительные запросы!

Мне не хватает конфигурации? Я пробовал @Cache и @Cacheable без разницы.

Я вставил файл конфигурации сюда , а application.properties содержит всего 3 элемента с spring.datasource.url, именем пользователя и паролем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...