Это хорошая практика для извлечения кэшированных объектов с нетерпением? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть много справочных / поисковых объектов, эти объекты редко меняются, и большинство из них использует кэширование второго уровня.

И я в настоящее время загружаю эти объекты с нетерпением (почти во всех типах ассоциаций.редко) когда запрашивается родительский объект.Причина, по которой я выбираю вот так, родительской сущности часто нуждается в этих сущностях.

Поэтому мой вопрос таков: должен ли я использовать кеш 2-го уровня, как этот, или присоединиться к этим справочным / поисковым таблицам, когда мне нужно?

Вот пример:

Родительский объект

@Entity
@Table
public class SomeEntity implements Serializable {

    @Id
    @Column(name = "id")
    private Long id;

    //Some other fields...

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "foo_id", referencedColumnName = "id")
    private Foo foo;

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name = "bar_id", referencedColumnName = "id")
    private Bar bar;

}

Ссылка / Поиск объектов

@Entity
@Table
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class Foo implements Serializable {

    @Id
    @Column(name = "id")
    private Short id;

    @Column(name = "description", nullable = false)
    private String description;

}

//Bar is the same as Foo
...