Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.hibernate.AnnotationException:mappedBy引用未知的目标实体属性_Java_Hibernate_Jpa - Fatal编程技术网

Java org.hibernate.AnnotationException:mappedBy引用未知的目标实体属性

Java org.hibernate.AnnotationException:mappedBy引用未知的目标实体属性,java,hibernate,jpa,Java,Hibernate,Jpa,我试图在用户和项目之间建立一个OneToMany关系,但我遇到以下错误: org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: ProjectDTO.FKUser in UserDTO.projectDTOs 我的用户类如下所示 @Entity @Table(name = "USER") public class UserDTO implements java.io.Se

我试图在用户和项目之间建立一个OneToMany关系,但我遇到以下错误:

org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: ProjectDTO.FKUser in UserDTO.projectDTOs
我的用户类如下所示

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

}
我也问过一些类似的问题,但我不知道我错在哪里。也许我错过了一些非常明显的东西


非常感谢

mappedBy需要指向进行映射的实体,因此我认为它应该是mappedBy=“USER”

mappedBy需要指向进行映射的实体,因此我认为它应该是mappedBy=“USER”

mappedBy
中,您必须使用字段名(或不带
get
的getter名称的一部分,用于基于属性的访问),而不是列名

    //...    
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "userDTO")
    public Set<ProjectDTO> getProjectDTOs() {
        return projects;
    }
    //...
/。。。
@OneToMany(fetch=FetchType.LAZY,mappedBy=“userDTO”)
公共集getProjectDTOs(){
返回项目;
}
//...

注意:还需要添加setter。

mappedBy
中,必须使用字段名(或不带
get
的getter名的一部分,用于基于属性的访问),而不是列名

    //...    
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "userDTO")
    public Set<ProjectDTO> getProjectDTOs() {
        return projects;
    }
    //...
/。。。
@OneToMany(fetch=FetchType.LAZY,mappedBy=“userDTO”)
公共集getProjectDTOs(){
返回项目;
}
//...

注意:还需要添加setter。

哦,我必须使用userDTO而不是userDTO。这是为什么呢?如果字段被调用
name
,那么这个字段的getter将
getName()
哦,我必须使用userDTO而不是userDTO。为什么呢?如果字段被调用
name
,那么这个字段的getter将
getName()