2016-09-06 4 views
0

私は、ユーザーとプロジェクト間のOneToManyの関係を作るためにしようとしていますが、私は次のようなエラーになっています:org.hibernate.AnnotationException:mappedByが未知のターゲットエンティティプロパティを参照

org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: ProjectDTO.FKUser in UserDTO.projectDTOs 

以下のように私のUserクラスを見て
@Entity 
@Table(name = "USER") 
public class UserDTO implements java.io.Serializable { 

    private Integer iduser; 
    private Set<ProjectDTO> projects = new HashSet<ProjectDTO>(0);; 

    public UserDTO() { 
    } 

    @Id 
    @GeneratedValue(strategy = IDENTITY) 
    @Column(name = "IDUser", unique = true, nullable = false) 
    public Integer getIduser() { 
     return this.iduser; 
    } 

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "FKUser") 
    public Set<ProjectDTO> getProjectDTOs() { 
     return projects; 
    } 

} 

そして、私のプロジェクトのクラスIは、SOMを経て

@Entity 
@Table(name = "Project") 
public class ProjectDTO implements java.io.Serializable { 

    private Integer idproject; 
    private UserDTO FKUser; 

    public ProjectDTO() { 
    } 

    @Id 
    @GeneratedValue(strategy = IDENTITY) 

    @Column(name = "IDProject", unique = true, nullable = false) 
    public Integer getIdproject() { 
     return this.idproject; 
    } 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinColumn(name = "FKUser", referencedColumnName = "IDUser") 
    public UserDTO getUserDTO() { 
     return FKUser; 
    } 
} 

のように見えます私は似たような質問をしましたが、どこに間違っているのか分かりませんでした。たぶん私は何か非常に明白な行方不明です。

どうもありがとう

答えて

1

(またはその一部であるべきと考えていますプロパティベースのアクセスの場合はgetなしのゲッター名)。列名ではありません。

//...  
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "userDTO") 
    public Set<ProjectDTO> getProjectDTOs() { 
     return projects; 
    } 
    //... 

注:セッターを追加する必要もあります。

+0

まだ同じエラーが発生しています – BrownTownCoder

+0

テストしました。まったく同じエラー? –

+0

ああ、私はUserDTOの代わりにuserDTOをしなければならなかった。それはなぜですか? – BrownTownCoder

0

mappedByがマッピングを行うエンティティを指すように必要なので、私はそれがのmappedBy =「USER」あなたは、フィールド名を使用する必要がありますmappedBy

+0

まだ同じエラーが発生しています – BrownTownCoder