oracle .jdb c .OracleDatabaseException: ORA-00972: идентификатор слишком длинный - PullRequest
1 голос
/ 03 апреля 2020

Вот мой класс сущностей

@Entity
public class ProjectDetails {

    @Id
    private int projectId;
    private String projectDescription;
    private int languageId;


}


@Entity
public class Project {

    @Id
    private int projectId;
    private String projectName;
    private LocalDate projectStartDate;
    private LocalDate projectEndDate;
    private String projectStatus;

    @OneToOne
    private ProjectDetails projectDetails;


}

У меня есть такой метод JPA

List<Projects> findProjectsByProjectsIdAndProjectDetailsLanguageId(int projectId, int languageId)

Во время выполнения я получаю ошибку ниже.

oracle.jdbc.OracleDatabaseException: ORA-00972: identifier is too long

Уже добавлена ​​физическая конфигурация именования

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

Я читал о неявной стратегии, но не уверен в этом. Есть идеи, как решить проблему?

1 Ответ

1 голос
/ 03 апреля 2020

Из 2.8.1 Правил именования объектов базы данных , взятых из Oracle DB 12.2 документации :

  1. Максимальная длина имен идентификаторов зависит от значения параметра инициализации COMPATIBLE.

    • Если для COMPATIBLE установлено значение 12,2 или выше, то имена должны быть из Длина от 1 до 128 байт с этими исключениями:

      • Имена баз данных ограничены 8 байтами.

      • Имена групп дисков, подключаемых баз данных ( PDB), сегменты отката, табличные пространства и наборы табличных пространств ограничены 30 байтами.

Для этой версии идентификатор просто слишком долго Единственный способ go - использовать более короткое имя или понизить COMPATIBLE до более низкой версии.

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