![](/img/trans.png)
[英]JPA OneToMany and ManyToOne throw: Repeated column in mapping for entity column (should be mapped with insert=“false” update=“false”)
[英]Repeated column in mapping for entity with @ManyToOne
我有两个实体在创建数据源时给我错误
实体 1
@NoArgsConstructor
@Entity
@Table(name = "person_details")
public class PersonDetails {
@Id
private String pid;
@Column(name = "first_name")
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "exist_flag")
private String existFlag;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "pid", nullable = false)
private List<AddressDetails> addressDetails;
}
实体 2 | 编辑 1
@Data
@NoArgsConstructor
@Entity
@Table(name = "address_details")
public class AddressDetails {
private String street;
@Column(name = "address_exist_flag")
private String addressExistFlag;
@ToString.Exclude
@EqualsAndHashCode.Exclude
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "pid", insertable = false, updatable = false)
private PersonDetails personDetails;
}
得到如下错误:
我收到错误消息“没有为实体指定标识符:AddressDetails”。
遇到这种情况如何解决? 在一个实体没有主键的情况下,我们可以使用具有 OneToMany 映射的 spring 数据 jpa 吗?
您收到的错误是因为您对 2 个不同的列使用了相同的列名。
@Id
private String pid;
和
@JoinColumn(name = "pid"
意味着您希望您的 id 列和外键列都被命名为“pid”,因此出现错误。 我建议为 JoinColumn 属性使用像“addressDetailsFk”这样的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.