java - Hibernate 在数据库中创建冗余列
问题描述
我在一个房间管理软件上工作,我想知道某个建筑物的房间。
在建筑实体中的@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。
解决方案
尝试使用类似的东西:
建筑类:
@OneToMany(mappedBy="building")
private Set<Room> rooms;
// getters and setters
房间等级:
@ManyToOne
@JoinColumn(name="building_number", nullable=false)
private Building building;
// getters and setters
推荐阅读
- c# - C#8.0 switch 语句和局部变量
- python - 从外部脚本使用 vscode 调试 python
- java - 经常误用:Java 和 JSP 文件中的文件上传
- javascript - 如何在代码中同时包含 lightbox 和 easyPaginate Javascript 库?(甚至可能吗?)
- swift - 在没有更多上下文的情况下,快速表达的类型是模棱两可的?
- html - 在 iOS13 上请求设备方向权限时,权限对话框不显示应用名称
- r - R:无法运行将 .xls 转换为 .xlsx 的特定 cmd 代码
- php - 在未发送的 laravel 邮件中显示错误
- php - 从 PHP 中的 IPP 请求中获取结果字节
- azure-data-factory-2 - 在 Azure 数据工厂中传递 Databricks Notebook 路径