Java Hibernate在数据库中创建冗余列
我在一个房间管理软件工作,我想知道某栋楼的房间 在建筑实体中,Java Hibernate在数据库中创建冗余列,java,spring,hibernate,relationship,hibernate-mapping,Java,Spring,Hibernate,Relationship,Hibernate Mapping,我在一个房间管理软件工作,我想知道某栋楼的房间 在建筑实体中,@OneToMany关系: @JsonBackReference(value= "room") @OneToMany(targetEntity=Room.class, mappedBy="building", fetch=FetchType.EAGER,cascade = CascadeType.REMOVE,orphanRemoval = true) public Set<Roo
@OneToMany
关系:
@JsonBackReference(value= "room")
@OneToMany(targetEntity=Room.class, mappedBy="building", fetch=FetchType.EAGER,cascade =
CascadeType.REMOVE,orphanRemoval = true)
public Set<Room> getRooms() {
return this.rooms;
}
@JsonManagedReference(value= "room")
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="building_number", nullable=false)
@OnDelete(action = OnDeleteAction.CASCADE)
public Building getBuilding() {
return this.building;
}
由于这些关系,自动生成的数据库会生成一个额外的字段,我只想将它们映射到Room.building_编号:
我只需要一个楼号。试着用这样的东西: 建筑类别:
@OneToMany(mappedBy="building")
private Set<Room> rooms;
// getters and setters
您的代码似乎是正确的,它应该只生成一列。是否确定该列每次都会生成,而不是以前版本生成的列,并且一直保留?你能删除它,看看它是否被重新创建了吗?是的,这个列每次都被重新创建。我有一些与之完全相同的代码,它可以工作。唯一的区别是我没有@OnDelete注释,只有普通的JPA,没有@OnDelete,它也创建了这个列。
@ManyToOne
@JoinColumn(name="building_number", nullable=false)
private Building building;
// getters and setters