【发布时间】:2019-05-01 20:31:18
【问题描述】:
我有两张表 Review 和 Bedrijfsgegevens。 Review 表有一个主键 (reviewId) 和一个外键 (bedrijfId)。 BedrijfId 是 Bedrijfsgegevens 表中的主键(作为 Id)。我遇到了这个问题,因为我试图在 Review 表中添加一个带有 BedrijfId 的行,该行在 Bedrijfgegevens 表中不存在,并且理所当然地得到了一个异常。
我尝试使用 @ManyToOne 和 @JoinColumn 注释来防止获取此异常。但是,我得到一个异常说“IllegalArgumentException:无法将 java.lang.Long 字段 org.loepr.loeprservices.models.Bedrijfsgegevens.id 设置为 java.lang.Long”
@Entity
@Data
@Table(name = "bedrijfreviews")
public class Review {
@ManyToOne(targetEntity = Bedrijfsgegevens.class)
@JoinColumn(name = "bedrijfid")
private Long bedrijfId;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonProperty("reviewId")
@Column(name = "reviewid")
private Long reviewId;
//other properties
}
@Entity
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Bedrijfsgegevens {
@Id
@JsonProperty("Id")
private Long id;
//other properties
}
我希望在 JPA 实体中创建主键和外键之间的关系,这样当我使用不存在的 bedrijfId(外键)作为 Bedrijfgegevens 表中的主键时,我不会遇到异常。
【问题讨论】:
标签: java jpa foreign-keys