2013-12-08 18 views
16

我需要做一對多的關係,但這種錯誤出現 的mappedBy引用一個未知目標實體屬性 這是父Caused by: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property造成的:org.hibernate.AnnotationException:引用的mappedBy的未知目標實體屬性

​​

而這個子類

package com.dating.model; 
import javax.persistence.CascadeType; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.FetchType; 
import javax.persistence.GeneratedValue; 
import javax.persistence.Id; 
import javax.persistence.JoinColumn; 
import javax.persistence.ManyToOne; 
import javax.persistence.Table; 

import org.hibernate.annotations.GenericGenerator; 

@Entity 
@Table(name="option") 
public class PsyOptions { 

    @Id 
    @GenericGenerator(name="autoGen" ,strategy="increment") 
    @GeneratedValue(generator="autoGen") 
    @Column(name="optionid") 
    private long psyOptionId; 
    @Column(name="optiontext") 
    private String optionText; 

    @JoinColumn(name = "questionid") 
    @ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.LAZY) 
    PsyQuestions psyQuestions; 


    public PsyOptions() { 
     super(); 
    } 

    public PsyQuestions getPsyQuestions() { 
     return psyQuestions; 
    } 

    public void setPsyQuestions(PsyQuestions psyQuestions) { 
     this.psyQuestions = psyQuestions; 
    } 

    public long getPsyOptionId() { 
     return psyOptionId; 
    } 
    public void setPsyOptionId(long psyOptionId) { 
     this.psyOptionId = psyOptionId; 
    } 
    public String getOptionText() { 
     return optionText; 
    } 
    public void setOptionText(String optionText) { 
     this.optionText = optionText; 
    } 

} 

回答

27

您需要設置的mappedBy屬性註釋心理問題而不是問題mappedBy屬性的值是關係的另一側的類字段的名稱,在這種情況下,類PsyOptions的ManyToOne側的心理問題

public class PsyQuestions { 
.... 
@OneToMany(fetch = FetchType.LAZY,mappedBy="psyQuestions") 
private List<PsyOptions> productlist=new ArrayList<PsyOptions>(); 
.... 
+0

mappedBy屬性已經爲psyQuestions實體設置,它映射到問題表 –

+0

@AliAliAbdelFatah您發佈的代碼顯示「@OneToMany(fetch = FetchType.LAZY,mappedBy =」question「)'。如答案中所述,這必須改變。 – melc

+0

非常感謝你解決了我的錯誤是把表的名稱放在mappedBy屬性 –

3

我有同樣的問題,因爲在源實體的mappedBy被定義爲「登記」(與@OneToMany註解),但在目標實體的相應的屬性是「bankEnrollment」;這是用@ManyToOne註解的屬性。

從招生更新到bankEnrollmentin源實體後,異常走(如expected_

教訓:。在的mappedBy值(例如psyQuestions)應該存在作爲目標實體屬性名

0

不知道這是否會幫助任何人,這是一個簡單的錯誤導致我的配置這個錯誤沒有意識到我有兩個不同的包含域類文件的包映射成員是在另一個包,而應用程序只掃描單包路徑

很難fi因爲它們只有一個單獨的字符而不同, org.abc.core.domains和org.abcs.core.domains。

將其他軟件包添加到數據庫@configuration掃描程序爲我解決了問題。

相關問題