我有以下实体:
@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从类字段中获取列名而不进行修改?
答案 0 :(得分:2)
JPA将名称标准化为大写。使用属性eclipselink.jpa.uppercase-column-names
,您只能以大写形式强制JDBC返回列名,以便与大写的默认命名匹配。
如果您不想使用注释@Column
覆盖列的默认命名,则可以使用SessionCustomizer或DescriptorCustomizer。这两种方式都适用于eclipselink,并且在此网站Link with example of SessionCustomizer & :DescriptorCustomizer