обновить декодированное поле из базовой таблицы - PullRequest
1 голос
/ 21 января 2020

У меня есть представление на основе базовой таблицы на 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
    )

Могу ли я как-то обновить вид сверху? или мне нужно обновить базовую таблицу?

Как только я удалил Gender из запроса на обновление, все это начало работать, но, к сожалению, нам тоже нужна эта информация ..

1 Ответ

0 голосов
/ 06 февраля 2020

Окей,

Даже если вы чувствуете, что должны игнорировать лучшие практики и писать, по вашему мнению, в верхней части таблицы, я вам скажу Не делать этого

На этот вопрос никогда не было никакого реального ответа, и все, что я могу сказать через несколько недель, это то, что ваша жизнь станет намного проще, если вы просто будете следовать рекомендациям и записать в базовую таблицу

спасибо и простите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...