java - org.hibernate.AnnotationException : mappedBy reference an unknown target entity property

标签 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.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;
    }

}

我的项目类看起来像

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

我遇到了一些类似的问题,但我无法弄清楚我哪里出了问题。也许我错过了一些非常明显的东西。

非常感谢

最佳答案

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

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

注意:还需要添加setter。

关于java - org.hibernate.AnnotationException : mappedBy reference an unknown target entity property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39358257/

相关文章:

java - 如何使用 Play 防止浏览器缓存?

java - 如何在 Java 中锁定框架 (GUI)

java - Hibernate 中组合键的多对多关系

java - 使用 JPA 的综合索引

java - 无法使 Eclipselink 2 级缓存工作

java - 以另一个用户身份加载进程?

java - 在 Android 中使用 MapStruct 来映射泛型类型?

java - 需要 Spring Boot 'sessionFactory' 或 'hibernateTemplate'

java - org.hibernate.exception.ConstraintViolationException : could not execute statement

spring - 设置自动创建时,您可以指定不将实体创建为表吗?