【问题标题】:Hibernate natural Id and 2nd level cacheHibernate自然ID和二级缓存
【发布时间】:2013-01-15 06:41:19
【问题描述】:

我正在尝试将 Hibernate 4 与 ehcache 一起使用。我的实体有几个 Id 字段,它们不是我的数据库中的主键。

@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Table(name = "tbl_a")
public class A {

  @Id
  private Integer uniqueId;

  @NaturalId
  private Date insertDate;

  @NaturalId
  private Integer businessId;

  ...

}

我希望缓存这个实体,但它是由@ID 字段而不是@NaturalIds 的组合缓存的

有没有办法让它工作?

谢谢, 伊多布

【问题讨论】:

    标签: hibernate ehcache second-level-cache


    【解决方案1】:

    尝试将insertDatebusinessId 移动到composite key。通过session.load(...) 加载的对象可以存储在二级缓存中。

    【讨论】: