2012-03-21 40 views
2

在我的JPA類,我有這樣的註釋和語法,我無法理解JPA JoinColumn註解

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

第一行是確定:當前類在DB(RES_ID)柱與連接Account其中有一列ACCT_ID

但第二行說:

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

現在這兩個表已列名爲DELETED。當這兩個表都有DELETED = 'N'時,這是一種簡短的方式來表示加入兩個表嗎?

因爲文檔說referencedColumn應該包含columnName。在這裏它包含一個value = N

+0

在規範中沒有提到'referencedColumnName'可以包含一個鑑別符值來加入。這段代碼實際上工作嗎? – Perception 2012-03-21 17:08:59

+0

'N'並不是一個真正的鑑別器值。因爲DELETED未標記爲鑑別器列。但是代碼運行良好。 – Victor 2012-03-21 18:06:08

回答

1

讓我猜,你使用OpenJPA?這當然不是指定的JPA功能,但OpenJPA在Non-Standard Joins中有一個名爲的常量連接

+0

你救了我的一天先生:) – Victor 2012-03-22 14:56:45