私は、他のエンティティの ID である 2 つの長いフィールドを持つ ID APK を持つエンティティ A を持っています。そのため、エンティティ A でアクションの追加/削除を実行しているときに Hibernate キャッシュ ミスが見つかりました。これを回避するには、ロングではなくエンティティを使用します。
@Entity
@AccessType("field")
@Table(name = "A")
@XStreamAlias("A")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class A {
@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "x", column = @Column(name = "X_ID")),
@AttributeOverride(name = "y", column = @Column(name = "Y_ID"))})
private APK id;
...................
}
@AccessType("field")
@Embeddable
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class APK implements Serializable {
protected long x= 0;//this is id of another entity
protected long y= 0;//this is id of another entity
......
}