Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Hibernate在数据库中创建冗余列_Java_Spring_Hibernate_Relationship_Hibernate Mapping - Fatal编程技术网

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