Repeated column in mapping for entity:在jpa中更新字段和关联字段
在jpa实体中我们会有两个字段
set get 和关联字段
解决办法
在JoinColumn 中添加 insertable = false,updatable = false
就是禁止更新这个关联字段,这样就不会报错,我们更新直接groupinfo字段,下面我把代码贴出来
package com.example.commonspojo.entity;
import javax.persistence.*;
@Entity
@Table(name = "cloud_auth_group_access", schema = "tobtest", catalog = "")
public class CloudAuthGroupAccessEntity {
private int id;
private int uidinfo;
private int groupinfo;
private CloudAuthGroupEntity groupId;
private CloudAdminEntity uid;
@Id
@Column(name = "id")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Basic
@Column(name = "uid")
public int getUidinfo() {
return uidinfo;
}
public void setUidinfo(int uidinfo) {
this.uidinfo = uidinfo;
}
@Basic
@Column(name = "group_id")
public int getGroupinfo() {
return groupinfo;
}
public void setGroupinfo(int groupinfo) {
this.groupinfo = groupinfo;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
CloudAuthGroupAccessEntity that = (CloudAuthGroupAccessEntity) o;
if (id != that.id) return false;
if (uidinfo != that.uidinfo) return false;
if (groupinfo != that.groupinfo) return false;
return true;
}
@Override
public int hashCode() {
int result = id;
result = 31 * result + uidinfo;
result = 31 * result + groupinfo;
return result;
}
@OneToOne
@JoinColumn(name = "group_id", referencedColumnName = "id", nullable = false,insertable = false,updatable = false)
public CloudAuthGroupEntity getGroupId() {
return groupId;
}
public void setGroupId(CloudAuthGroupEntity groupId) {
this.groupId = groupId;
}
// @OneToOne
// @JoinColumn(name = "uid", referencedColumnName = "id", nullable = false)
// public CloudAdminEntity getUid() {
// return uid;
// }
//
// public void setUid(CloudAdminEntity uid) {
// this.uid = uid;
// }
}