java - 如何在 DB 上使用字段不存在的列进行 OneToOne
问题描述
我有两张桌子。我想加入两者,但它们之间没有联合专栏。为了生成联合列,我在我的cell
实体上添加了新字段。字段名称为cityCode
,由lac
列子字符串索引 1 到 3 创建,然后转换为 int。所以实际上当你检查数据库时你看不到cityCode
列。我没有将它存储在数据库中。
我也有city
实体,它也有 id 列,它也是名称cityCode
。我想用cityCode
列连接表。
这是我的 json 列表
cell
实体:https ://jsoneditoronline.org/?id=a5ed0c0ab0c249f89c9360ecca3f0750city
实体:https ://jsoneditoronline.org/?id=205565db82014c75b292122f141239c8
我使用下面的代码对不存在的列进行编码。它工作得很好,就像你在我的cell
实体 json 上看到的那样。
@Getter(AccessLevel.NONE)
@Setter(AccessLevel.NONE)
@Column(name = "LAC", insertable = false, updatable = false)
private Integer cityCode;
public Integer getCityCode()
{
return Integer.parseInt(lac.substring(1,3));
}
我尝试使用下面的代码会引发错误。
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "cityCode")
private City city;
oracle.jdbc.OracleDatabaseException:ORA-00904:“GCELL6900X0_”。“CITY_CODE”:标识符无效
它在 DB 上看起来 CITY_CODE 列,所以我知道它为什么会抛出错误,但我找不到任何解决方案。
解决方案
推荐阅读
- javascript - 按用户 ID 查找所有帖子
- c# - 比较枚举为 0 默认值
- r - 使用 Shiny 在反应式环境中更新绘图的最佳方法
- correlation - R psych::statsBy() 错误:“'x' 必须是数字”
- javascript - 数组推送方法是重复元素,新的 Set 方法不删除重复的元素
- c# - 带有子选择的EF Core 5.0 Union Linq查询不起作用
- java - 有没有办法通过java代码在draft-07 json模式中获取所需的字段数组
- c# - 亚马逊 MWS:计算的签名与将工作 PHP 解决方案转换为 c# 时提供的不匹配
- python - 使用 selenium 同时单击多个选项卡中的链接
- scala - SBT 1.4.0 控制台不再接受 SublimeSBT 中的输入