2013-07-24 52 views
0

我有Hibernate的註解一個Java類,它指的是另一個POJO:爪哇 - 休眠 - 的mappedBy問題

@Entity 
@Table(name = "Patient_Visit_Transaction") 
public class PatientVisitTransaction extends Bean { 
    @OneToMany(fetch = FetchType.LAZY) 
    @JoinColumn(name = "transaction_id") 
    List<TransactionNoteDW> notes; 
    .... 
} 

另一類是這樣的:

@Entity 
@Table(name = "Transaction_note_dw") 
public class TransactionNoteDW extends DateAuditableBean { 
    @Id 
    @Column(name = "note_seq") 
    private long id; 

    @Column(name = "transaction_id") 
    private String transactionId; 
} 

我試圖刪除PatientVisitTransaction我得到一個錯誤: mappedBy reference an unknown target entity property: TransactionNoteDW.transaction_id in PatientVisitTransaction.notes
我想它試圖將notes映射到transaction_id。我如何指定正確的映射,還是完全忽略我的評估?

+0

沒有的mappedBy在您發佈的代碼的任何地方。發佈真實的和相關的代碼。 –

+0

我的代碼中沒有任何mappedBy註釋。這是奇怪的部分。 Hibernate必須使用某種別名。這是真實且相關的代碼。 – jhamm

+0

嗯。奇怪的確如此。無論如何,@安德烈有答案。每當你在一個實體中擁有另一個實體的ID時,你就錯了。 –

回答

1

我想你可能要映射這樣的:

public class TransactionNoteDW extends DateAuditableBean { 
    //.... 
    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "patient_id") 
    private PatientVisitTransaction patient; 
} 
public class PatientVisitTransaction extends Bean { 
    //.... 
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "patient") 
    List<TransactionNoteDW> notes; 
}