Java org.hibernate.AnnotationException:mappedBy引用未知的目标实体属性
我试图在用户和项目之间建立一个OneToMany关系,但我遇到以下错误: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
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()