【发布时间】:2020-05-07 10:27:10
【问题描述】:
我有基于 oracle 11g 基础表的视图。我也使用 Kotlin 和 Hibernate 作为 ORM
视图的性别如下:
decode(c.xxyy,'0','Male','1','Female','Undefined') as gender,
并且基础表具有CHAR(1 BYTE) 作为数据类型
我目前只有在顶部选择和更新视图的权限。
但我似乎找不到要放入视图的数据类型。
尝试将属性设置为String 会导致错误ORA-01733: virtual column not allowed here
同时尝试其他数据类型,如 int 或直接使用 enum GENDER 将导致不同的错误,关于数据类型。所以我认为String 是正确的选择。
@Entity
@Table(name = "TVIEW", schema = "XXXX")
class PersonBackground(
@Id
@Column(name = "ID")
var id: String,
@Column(name = "NICKNAME")
var nickname: String?,
@Column(name = "BIRTHPLACE")
var birthCity: String?,
//@Column(name = "GENDER")
//var gender: String
)
我可以以某种方式更新顶部的视图吗?还是我必须更新基础表?
一旦我从更新查询中删除性别,整个事情就开始工作了,但不幸的是我们也需要这个信息..
【问题讨论】:
标签: hibernate kotlin oracle11g sql-update