代码之家  ›  专栏  ›  技术社区  ›  dfche

设置Intellij IDEA JPA控制台命名策略

  •  0
  • dfche  · 技术社区  · 3 年前

    我有一个全默认(Lombok除外)的Spring Boot 2.5.6+PostgreSQL项目,在Intellij IDEA 2021.2.3中打开了一个非常基本的JPA映射。JPA配置是用注释(没有XML)实现的。该应用程序本身运行良好,可以从数据库中保存和检索记录。在“Persistence”窗口中,我可以正确地看到我的JPA结构,数据源已分配。这是实体代码:

    @Entity
    @Data
    ...
    public class Cover {
    ...
    private String ageRestriction;
    }
    

    但是当我尝试使用例如执行查询时。 select c from Cover c 我得到一个错误:

    jpa-ql> 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控制台使用与我的应用程序相同的命名策略? IDE UI

    附言 在指定之后,我已经设法使控制台工作 @Column 用于所有多字字段名称,并添加@Table注释 schema name 属性。但我更希望能够以某种方式同步控制台和应用程序JPA/Hibernate配置。

    0 回复  |  直到 3 年前