【问题标题】:update decoded field from underlying table从基础表更新解码字段
【发布时间】: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


    【解决方案1】:

    好吧,

    即使你觉得你应该忽略最佳实践,并写下你的观点,我也会告诉你不要这样做

    这个问题从来没有真正的答案,几周后我只能说,如果你遵循最佳实践并写入底层表,你的生活会轻松很多p>

    谢谢你,对不起

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多