在EclipseLink中进行缓存-防止使用相同参数重复查询

时间:2019-03-16 20:26:59

标签: java spring-boot jpa spring-data-jpa eclipselink

我正在尝试使用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,用户名和密码。

0 个答案:

没有答案