JPA 数据库分隔符

Lau*_*ens 4 jpa eclipselink jakarta-ee

我有两个实体类,称为“用户”和“组”,这两个保留字都需要分隔,以便数据库将它们接受为表。用以下方式注释实体:

@Table(name = "\"USER\"")
Run Code Online (Sandbox Code Playgroud)

确实有效,但我读到 EclipseLink 允许您指定一个自动分隔名称的全局变量。根据http://dev.eclipse.org/mhonarc/lists/eclipselink-users/msg03434.html,您需要在orm.xml中包含以下内容:

<persistence-unit-metadata>
    <persistence-unit-defaults>
        <delimited-identifiers/>
    </persistence-unit-defaults>
</persistence-unit-metadata>
Run Code Online (Sandbox Code Playgroud)

然而,我已经注释了我的类,并且没有 orm.xml,只有 persistence.xml,根据相同的来源,我不能包含该属性。还有其他地方我可以指定吗:

eclipselink.database.delimiters = true
Run Code Online (Sandbox Code Playgroud)

当实际的实体管理器通过@PersistenceContext注入时?

谢谢!

更新:

谢谢詹姆斯。我最终得到了以下结果orm.xml,它完美地完成了任务!

<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="1.0" xmlns="http://java.sun.com/xml/ns/persistence/orm"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                           xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm orm_1_0.xsd">
<persistence-unit-metadata>
    <persistence-unit-defaults>
        <delimited-identifiers/>
    </persistence-unit-defaults>
</persistence-unit-metadata>
</entity-mappings>
Run Code Online (Sandbox Code Playgroud)

Jam*_*mes 5

您应该能够添加一个 orm.xml,它只需要有这个设置,您仍然可以在注释中定义所有映射。