如何强制Eclipse Link创建表完全相同的ClassName?

时间:2016-12-09 18:22:10

标签: java eclipse jpa orm eclipselink

我喜欢JPA EclipseLink创建表格与ClassName(和字段)完全一样,没有注释@Table和@Column。它始终使用大写创建表和字段,这很难被DB控制台读取。

例如:

@Entity
public class ChannelEntity {

    @Id     @GeneratedValue  
    public Long id;

    public String name;

    public String description;

    public Boolean oficial;

    @Temporal(TemporalType.TIMESTAMP)
    public Date creation;

}

我想要结果

    Table: ChannelEntity
    id  creation    description name        oficial
   ----------------------------------------------------
    351 NULL        meu desc    meu nome    1

可能在persistence.xml中存在相同的参数,但我无法找到它。

1 个答案:

答案 0 :(得分:1)

如果EclipseLink行为正确,您要查找的参数是delimited-identifers。从JPA 2.1规范:

  

可以指定用于a的所有数据库标识符   通过指定,将持久性单元视为分隔标识符   <delimited-identifiers/>中的persistence-unit-defaults元素   对象/关系xml映射文件的元素。如果   指定了<delimited-identifiers/>元素,但不能   重写的。

如果包含此元素,EclipseLink应在其生成的SQL中分隔所有数据库标识符,这将导致使用区分大小写的名称创建数据库对象。