Hibernate создает избыточный столбец в базе данных - PullRequest
0 голосов
/ 05 марта 2020

Я работаю с программным обеспечением для управления помещениями, в котором я хочу знать комнаты в определенном здании.

В объекте здания соотношение @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;
}

И в сущности комнаты отношение @ManyToOne:

@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_number:

building_building_number и мне просто нужен building_number.

1 Ответ

0 голосов
/ 05 марта 2020

Попробуйте использовать что-то вроде этого:

Building.class:

@OneToMany(mappedBy="building")
private Set<Room> rooms;

// getters and setters

Room.class:

@ManyToOne
@JoinColumn(name="building_number", nullable=false)
private Building building;

// getters and setters
...