【问题标题】:Many to Many Spring MVC mappedBy reference an unknown target entity property多对多 Spring MVC mappedBy 引用了一个未知的目标实体属性
【发布时间】:2020-04-24 10:31:20
【问题描述】:

大家好 我正在尝试为实体 Shelter 和 Owner 建立关系,多对多,但错误是攀爬,我不明白这是怎么回事

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    @DynamicUpdate
    @Entity
    @Table(name = "owner")
    public class Owner {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int idOwner;

    private String name;

    private String address;

    private String description;

    @ManyToMany(cascade = {CascadeType.ALL})
    @JoinTable(
            name = "owner_shelter",
            joinColumns = {@JoinColumn(name = "owner")},
            inverseJoinColumns = {@JoinColumn(name = "shelter")}
    )
    private Set<Shelter> shelterOwner;
}

--

@Data
@DynamicUpdate
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    @Entity
    @Table(name = "shelter")
    public class Shelter {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;

        private String name;
        private String address;
        private String description;

    @ManyToMany(mappedBy = "shelter")
    private Set<Owner> sheltersOwner;
}

还有错误

org.springframework.beans.factory.BeanCreationException:在类路径资源 [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class] 中定义名称为“entityManagerFactory”的 bean 创建错误:调用 init 方法失败;嵌套异常是 org.hibernate.AnnotationException: ma​​ppedBy reference an unknown target entity property: ru.itis.springbootdemo.models.Shelter.sheltersOwner 中的 ru.itis.springbootdemo.models.Owner.shelter

【问题讨论】:

    标签: java spring


    【解决方案1】:

    错误信息是明确的,这是不正确的

     @ManyToMany(mappedBy = "shelter")
     private Set<Owner> sheltersOwner;
    

    应该是

     @ManyToMany(mappedBy = "shelterOwner")
     private Set<Owner> sheltersOwner;
    

    mappedBy 引用了另一端的属性名称,但在您的代码中未正确设置。

    【讨论】:

      【解决方案2】:

      问题是Owner类中收容所的字段名,必须是private Set&lt;Shelter&gt; shelter; 不是private Set&lt;Shelter&gt; shelterOwner;

      【讨论】:

        猜你喜欢
        • 2011-04-30
        • 1970-01-01
        • 2022-01-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多