Я пытаюсь создать проект с 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, именем пользователя и паролем.