[英]Repeated column in mapping for entity with @ManyToOne
I have two entities which is giving me error on creation of datasource我有两个实体在创建数据源时给我错误
Entity1实体 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;
}
Entity 2 |实体 2 | EDIT 1
编辑 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;
}
Getting error as below:得到如下错误:
I am getting error as "No identifier specified for entity: AddressDetails".我收到错误消息“没有为实体指定标识符:AddressDetails”。
How to resolve in such case?遇到这种情况如何解决? Can we use spring data jpa having OneToMany mapping in such case where one entity do not have primary key ?
在一个实体没有主键的情况下,我们可以使用具有 OneToMany 映射的 spring 数据 jpa 吗?
The error you are getting is because you are using the same column name for 2 different columns.您收到的错误是因为您对 2 个不同的列使用了相同的列名。
@Id
private String pid;
and和
@JoinColumn(name = "pid"
means that you want both your id column and your foreign key column to be named "pid", hence the error.意味着您希望您的 id 列和外键列都被命名为“pid”,因此出现错误。 I would suggest using a name like "addressDetailsFk" for the JoinColumn attribute.
我建议为 JoinColumn 属性使用像“addressDetailsFk”这样的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.