私はCarro Entityを更新しようとすると、次の例外を除いて、単一の領域に対して '読み書き可能'と '読み取り専用'スローされました:同じHibernate第2レベルキャッシュ領域の2つのCacheConcurrencyStrategyのマッピング
ERROR org.hibernate.internal.SessionImpl - HHH000346:管理フラッシュ中にエラーが発生しました[読み取り専用オブジェクトに書き込めません]スレッド "メイン" java.lang.UnsupportedOperationExceptionがで
例外を:読み取り専用オブジェクトに書き込めません
異なる地域の事業体を分離する場合。したがって、同じ地域に2つの異なるタイプの戦略を持つことはできませんか?
Psの:これはあまりにも警告を受信:HHH020007:読み取り専用キャッシュ可変エンティティの
を設定し - >カルロ:
@Entity
@Table(name = "carro")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, region = "myregion")
public class Carro implements Serializable
{
private static final long serialVersionUID = 8467432396096896736L;
@Id
@Column(name = "id")
private Integer id;
@Column(name = "carro")
private String carro;
@OneToMany(mappedBy = "carro", fetch = FetchType.LAZY)
private List<Pessoa> pessoas = new ArrayList<Pessoa>();
}
- >ペソア:
@Entity
@Table(name = "pessoa")
@Cache(usage = CacheConcurrencyStrategy.READ_ONLY, region = "myregion")
public class Pessoa implements Serializable
{
private static final long serialVersionUID = 8467432396096896736L;
@Id
@Column(name = "id")
private Integer id;
@Column(name = "nome")
private String Nome;
@Column(name = "sexo")
private String sexo;
@Column(name = "idade")
private Integer idade;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "carro_id")
private Carro carro;
}
- > ehcache.xml:
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false"
monitoring="autodetect" dynamicConfig="true">
<cache name="myregion" maxEntriesLocalHeap="1000" eternal="false" timeToLiveSeconds="1000">
<persistence strategy="none"/>
</cache>
<cache name="org.hibernate.cache.internal.StandardQueryCache" maxEntriesLocalHeap="1000" eternal="false" timeToLiveSeconds="120">
<persistence strategy="none"/>
</cache>
<cache name="org.hibernate.cache.spi.UpdateTimestampsCache" maxEntriesLocalHeap="1000" eternal="true">
<persistence strategy="none"/>
</cache>
</ehcache>