- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我为单个区域设置了不同的缓存策略,例如“读写”和“只读”用法,当我尝试更新 Carro 实体时,抛出了以下异常:
错误 org.hibernate.internal.SessionImpl - HHH000346:托管刷新期间出错 [无法写入只读对象]
线程“main”中的异常 java.lang.UnsupportedOperationException:无法写入只读对象
如果我在不同的地区分开实体工作。那么,不能在同一个区域有两种不同类型的策略吗?
Ps.: 也收到这个警告:HHH020007: read-only cache configured for mutable entity
->卡罗:
@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>
最佳答案
区域必须有一个CacheConcurrencyStrategy
。在您的情况下,Pessoa
类必须在 Carro
之后注册,因此 myregion
设置为 READ_ONLY
。
默认情况下,每个实体都有不同的区域工厂,因此您可以在每个实体的基础上设置不同的CacheConcurrencyStrategy
。
关于java - 为同一个 Hibernate 二级缓存区域映射两个 CacheConcurrencyStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38578631/
我在 WebLogic Server 版本:12.1.2.0.0 的 JPA2 中使用 CacheConcurrencyStrategy.READ_ONLY 并且工作正常,我刚刚使用 PL/SQL D
我为单个区域设置了不同的缓存策略,例如“读写”和“只读”用法,当我尝试更新 Carro 实体时,抛出了以下异常: 错误 org.hibernate.internal.SessionImpl - HHH
我正在尝试使用 EhCacheProvider 在 hibernate 应用程序中配置二级缓存。我已经在 hibernate.cfg.xml 中完成了配置: true org
我是一名优秀的程序员,十分优秀!