【问题标题】:JPA JoinColumn AnnotationJPA JoinColumn 注释
【发布时间】:2012-03-21 16:51:06
【问题描述】:

在我的 JPA 类中,我有这个注释和我无法理解的语法

@JoinColumns({
    @JoinColumn(name="RES_ID", referencedColumnName="ACCT_ID"),
    @JoinColumn(name="DELETED", referencedColumnName="'N'")
})
protected Account account;

第一行没问题:当前类在 db (RES_ID) 中有列,它与 Account 连接,ACCT_ID 中的列有 ACCT_ID

但是第二行说:

@JoinColumn(name="DELETED", referencedColumnName="'N'")

现在这两个表都有一个名为DELETED 的列。当这两个表都有DELETED = 'N' 时,这是连接这两个表的简写方式吗?

因为文档说referencedColumn 应该包含columnName。这里它包含一个value = N

【问题讨论】:

  • 规范中没有提到referencedColumnName 可以包含要加入的鉴别器值。这段代码真的有效吗?
  • 'N' 并不是真正的鉴别器值。因为 DELETED 没有被标记为鉴别器列。但代码运行良好。

标签: java jpa openjpa


【解决方案1】:

让我猜猜,您使用的是 OpenJPA?这肯定不是指定的 JPA 功能,但 OpenJPA 在其 Non-Standard Joins 中有一个称为 constant joins 的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-01
    • 2011-12-07
    • 2012-08-09
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多