Java Hibernate:在实体中引用外键时,插入时发生外键错误
我拥有以下实体:Java Hibernate:在实体中引用外键时,插入时发生外键错误,java,hibernate,Java,Hibernate,我拥有以下实体: @Entity @Table(name = "calendar") public class Calendar { @Id @GeneratedValue(generator = "uuid2") @GenericGenerator(name = "uuid2", strategy = "uuid2") @Column(name = "id", columnDefinition = "BINARY(16)") private UUID
@Entity
@Table(name = "calendar")
public class Calendar {
@Id
@GeneratedValue(generator = "uuid2")
@GenericGenerator(name = "uuid2", strategy = "uuid2")
@Column(name = "id", columnDefinition = "BINARY(16)")
private UUID id;
@Column(name = "name")
private String name;
@JsonIgnore
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "owner", referencedColumnName = "id")
private OrganizerUser owner;
...
}
如果我在表中插入该类的对象,则一切正常。但是,当我向实体添加以下内容时:
@Column(name = "owner", updatable = false, insertable = false)
private UUID ownerId;
我得到以下错误:
Cannot add or update a child row: a foreign key constraint fails (`organizer`.`calendar`, CONSTRAINT `FK3f7d9mholcykdaygm3bnwhwg7` FOREIGN KEY (`owner`) REFERENCES `user_info` (`id`))
在这种情况下是否可以引用外键?如果省略引用,只执行
owner.getId()
,是否会加载OrganizerUser对象?如果访问owner.getId(),则会从数据库中提取OrganizerUser对象。在第二种情况下,您是设置所有者还是仅设置ownerId?请查看代理上id字段的访问。在第二种情况下,我仅设置所有者