我正在尝试使用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
时,对于每个条目我都会看到对Person表的3个查询,即使所有三个属性中的ID相同。我假设如果从Person中获取一个ID 1,并且该ID用于A
列表中的任何位置,则不会触发其他查询!
我是否缺少配置?我已经尝试过@Cache
和@Cacheable
了。
我粘贴了配置文件here,application.properties仅包含3个元素,包括spring.datasource.url,用户名和密码。