场景描述
- 开发环境:spring boot1.5.3.RELEASE +JPA
- 数据库环境:mycat 1.6+mysql5.6
- 报错信息:对分片表进行更新操作,提示XX字段无法更新
报错原因
mycat中分片表中的分片字段是不能更新的,而Jpa(底层hibernate)默认是更新全字段。所以会产生冲突,报错。
解决方案
- 对实体进行注解
@Column(updatable=false)
public int getAge() {
return age;
}
- 修改实体映射文件
<property name="age" update="false"></property>
主要是把实体不需要更新字段,设置 update 属性为 false