У меня есть много справочных / поисковых объектов, эти объекты редко меняются, и большинство из них использует кэширование второго уровня.
И я в настоящее время загружаю эти объекты с нетерпением (почти во всех типах ассоциаций.редко) когда запрашивается родительский объект.Причина, по которой я выбираю вот так, родительской сущности часто нуждается в этих сущностях.
Поэтому мой вопрос таков: должен ли я использовать кеш 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