Java.sql.SQLSyntaxErrorException: ORA-00904 - «ID»: недопустимый идентификатор

Я хочу сопоставить таблицу с сущностью -

@Entity
@Table(name = "SUBSCRIPTIONFILE", schema = "SUBSCRIPTIONSERVICES")
public class SUBSCRIPTIONFILE {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    private String PRODUCTSKU;
    private String VERSION;
    private String PLATFORM;
    private String FILENAME;
    private String DESCRIPTION;

    protected SUBSCRIPTIONFILE() {
    };
    //setter & getters

И я получаю - Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "SUBSCRIPTI0_"."ID": invalid identifier, поэтому я удалил поле идентификатора и получил -

`No identifier specified for entity:` `com.siemens.plm.it.aws.connect.entitys.SUBSCRIPTIONFILE`

Я скопировал все имена таблиц, схем и полей и попытался удалить @Table и любой другой ответ SO, который я видел, но все еще не мог его решить. После удаления @Entity -

Caused by: java.lang.IllegalArgumentException: Not a managed type: class com.siemens.plm.it.aws.connect.entitys.SUBSCRIPTIONFILE, удаление @Table -

No identifier specified for entity: com.siemens.plm.it.aws.connect.entitys.SUBSCRIPTIONFILE.

------------Схема------------

Java.sql.SQLSyntaxErrorException: ORA-00904 - «ID»: недопустимый идентификатор

Не могли бы вы приложить схему таблицы?

Dzmitry Bahdanovich 03.12.2018 15:10

Да, добавляю к вопросу.

Itsik Mauyhas 03.12.2018 15:12

В таблице необходимо явно указать столбец ID типа numeric. Также убедитесь, что это не проблема чувствительности к регистру.

Dzmitry Bahdanovich 03.12.2018 15:31

1 - столбец с идентификатором иметь не обязательно. 2 - Я выложил схему и все названия верхние.

Itsik Mauyhas 03.12.2018 15:34

Да, это сработает, если я установлю другой столбец в качестве своего идентификатора.

Itsik Mauyhas 03.12.2018 15:36

Вы не говорите, СОЗДАЛ ли ваш провайдер JPA таблицу или нет. Если нет, то это неудивительно, поскольку у вас нет столбца с именем ID, но ваше отображение говорит, что он вам нужен. Если таблица существует, сообщите нам, что такое столбец PK и каково его определение.

user3973283 03.12.2018 15:56
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
6
3 464
1

Ответы 1

Все в вашем классе сущности выглядит нормально, кроме поля id.

Попробуйте изменить имя переменной с «id» на «myId» или любое имя, не являющееся ключевым словом базы данных Oracle.

Нет, все та же ошибка с новым именем - Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "SUBSCRIPTI0_"."PKSUID": invalid identifier.

Itsik Mauyhas 03.12.2018 15:18

Другие вопросы по теме