2016-09-06 4 views
0

Ich versuche, eine OneToMany Beziehung zwischen Benutzer und Projekt zu machen, aber ich folgenden Fehler bekommen:org.hibernate.AnnotationException: mappedBy Referenz eines unbekanntes Ziel Entitätseigenschaft

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

Meine User-Klasse aussehen wie unten

@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; 
    } 

} 

Und sieht mein Projekt Klasse wie

@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; 
    } 
} 

ich durch som ging Die ähnlichen Fragen, aber ich konnte nicht herausfinden, wo ich falsch lag. Vielleicht vermisse ich etwas sehr Offensichtliches.

Vielen Dank

Antwort

1

In mappedBy Ihnen Feldnamen (oder einen Teil des Einsatzes müssen Getter-Name ohne get für eigenschaftsbasierten Zugriff), nicht Spaltenname.

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

Hinweis: müssen auch Setter hinzufügen.

+0

Immer noch den gleichen Fehler – BrownTownCoder

+0

Es funktioniert, habe ich getestet. Genau der gleiche Fehler? –

+0

oh ich musste userDTO anstelle von UserDTO tun. Warum ist das so? – BrownTownCoder

0

mappedBy muss das Unternehmen darauf hinweisen, dass die Zuordnung der Fall ist, so dass ich glaube, es sollte mappedBy = „USER“

+0

immer noch den gleichen Fehler – BrownTownCoder

Verwandte Themen