JPA2(EclipseLink)和PostgreSQL的引用问题

JPA2(EclipseLink)和PostgreSQL的引用问题,postgresql,jpa,eclipselink,quotes,Postgresql,Jpa,Eclipselink,Quotes,使用PostgreSQL时,我必须对所有标识符进行双引号引用,否则它们的大小写将显式降低。我更愿意保留大小写,因为“LastLoginAttentipAddress”比“LastLoginAttentipAddress”更具可读性 我已经创建了一个orm.xml文件,其中包含(以下全部内容)。这导致EclipseLink引用了大多数标识符,但在定义外键约束时,它没有引用列名。如何让EL引用所有标识符 我还尝试在显式指定的表/列名中使用引号,以使EL引用标识符。首先也是最重要的是,这也不起作用——

使用PostgreSQL时,我必须对所有标识符进行双引号引用,否则它们的大小写将显式降低。我更愿意保留大小写,因为“LastLoginAttentipAddress”比“LastLoginAttentipAddress”更具可读性

我已经创建了一个orm.xml文件,其中包含(以下全部内容)。这导致EclipseLink引用了大多数标识符,但在定义外键约束时,它没有引用列名。如何让EL引用所有标识符

我还尝试在显式指定的表/列名中使用引号,以使EL引用标识符。首先也是最重要的是,这也不起作用——同样的行为。除此之外,(1)这迫使我两次指定名称(我已经在属性访问器名称中这样做了),并且以重构工具看不见的方式,(2)这是错误的——引号不是名称的一部分,(3)它迫使我在POJO级别修复引号,而这实际上是我正在使用的数据库系统的一个特定特性

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">

    <description>description here</description>
    <persistence-unit-metadata>
        <persistence-unit-defaults>
            <delimited-identifiers />
        </persistence-unit-defaults>
    </persistence-unit-metadata>

</entity-mappings>
生成的查询(请注意列名周围缺少引号):


外键列没有被引用似乎是一个错误。请在EclipseLink中记录错误并投票支持它


DDL失败了吗?一种解决方法是在脚本中定义DDL,或者将该列全部转换为小写。

我已将其记录为错误,并使用手工制作的DDL脚本。谢谢你的回答。不幸的是,我无法在不创建另一个网站帐户的情况下投票支持你(StackOverflow甚至声称我可以使用我的Google帐户而不是OpenID进行身份验证,然后突然尝试使用OpenID注册我,而我从来没有打算这么做。我一定会喜欢这个…)James,即使我使用强迫我使用的帐户登录,我还是不能投票支持你。很抱歉,您创建了两个帐户-我已为您合并了它们。我还将你下面的评论从一个答案转换为一个实际的评论。如果您登录Stack Overflow时遇到问题,请访问并告知我们。我没有确认任何帐户创建对话框,即使是那些试图伪装为“使用您的Google帐户登录”的对话框。
@Entity
public class UserX {

    ...

    @Id
    @GeneratedValue(generator = "UserX_id_seq")
    @SequenceGenerator(name = "UserX_id_seq", allocationSize = 1)
    public int getId() { ... }

    ...

    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    public UserX getModificationUser() { ... }

}
ALTER TABLE "UserX" ADD CONSTRAINT "FK_UserX_modificationUser_id" FOREIGN KEY (modificationUser_id) REFERENCES "UserX" (id)