EclipseLink:默认列名更改为大写

EclipseLink: default column names are changed to uppercase

我有以下实体:

@Entity
public class SomeEntity{
    @Id
    @Column(name = "id")
    private Integer id;

    private String foo;
    //+getters and setters
}

因此,ecpliselink 将生成以下查询:

SELECT t1.id, t1.FOO FROM ...

我注意到所有默认列名称(我没有通过@Column 设置)都更改为大写。我试图将 eclipselink.jpa.uppercase-column-names 设置为 false 但它没有帮助。我怎样才能让 eclipselink 在不修改的情况下从 class 字段中获取列名?

JPA 将名称标准化为大写。使用 属性 eclipselink.jpa.uppercase-column-names 您只能强制使用大写的 JDBC return 列名称,以便与大写的默认命名相匹配。

如果您不想使用注释 @Column 覆盖列的默认命名,您可以使用 SessionCustomizer 或 DescriptorCustomizer。这两种方式都适用于 eclipselink,并且在本网站上有很好的描述 Link with example of SessionCustomizer & :DescriptorCustomizer