#spring-boot #hibernate #jpa #intellij-idea
Вопрос:
У меня есть проект Spring Boot 2.5.6 PostgreSQL по умолчанию (за исключением Ломбока) с очень простым отображением JPA, открытым в Intellij IDEA 2021.2.3. Конфигурация JPA реализована с аннотациями (без XML). Само приложение работает нормально, записи сохраняются и извлекаются из базы данных. В окне «Сохраняемость» я правильно вижу свою структуру JPA, источник данных назначен. Вот код сущности:
@Entity @Data ... public class Cover { ... private String ageRestriction; }
Но когда я пытаюсь выполнить запрос, например select c from Cover c
, с помощью, я получаю ошибку:
jpa-qlgt; select c from Cover c [2021-11-01 16:14:03] [42703] ERROR: column cover0_.agerestriction does not exist [2021-11-01 16:14:03] Hint: Perhaps you meant to reference the column "cover0_.age_restriction".
Я попытался добавить конфигурацию стратегии именования в свои настройки, но это не возымело никакого эффекта:
spring: jpa: hibernate: naming: physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy implicit-strategy: org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy
Я также не вижу «Назначить стратегию именования» в контекстном меню модуля сохранения (см. Скриншот). Есть ли способ заставить консоль JPA использовать ту же стратегию именования, что и мое приложение?
PS: Мне удалось заставить консоль работать после указания @Column
для всех имен полей из нескольких слов и добавления аннотации @Table со schema
свойствами и name
свойствами. Но я бы предпочел каким-то образом синхронизировать конфигурации консоли и приложения JPA/Hibernate.
Комментарии:
1. Вы выбрали своего поставщика JPA в
Project Structure
gt; gt; gt;Modules
gt; gt;your module
gt; gt;JPA
gt;gt;Default JPA Provider
?2. @gmanjon да, был выбран режим гибернации.
3. Вы пробовали использовать предыдущую версию Intellij IDEA? Удаление *.iml/.идея/цель/? Аннулирование тайников?
4. 1) IDEA 2020 не видит вторичной сущности, связанной через @Embedded, поэтому я даже не смог добраться до той же точки 2) У меня нет такой папки 3) Да, никакого эффекта
5. Извините. Закончились идеи без дополнительной информации. Может быть, со всей структурой проекта (папками), скриншотом окна идеи «Структура проекта» мы можем что-то придумать. Вы пробовали удалить
@Embedded
и попробовали проект с простыми сопоставлениями JPA? То, что это плохо работает в предыдущих версиях, звучит подозрительно (может указывать на это направление).