EclipseLink:默认列名称更改为大写

时间:2016-08-31 11:39:27

标签: jpa eclipselink

我有以下实体:

@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从类字段中获取列名而不进行修改?

1 个答案:

答案 0 :(得分:2)

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

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

上有很好的描述