mappedBy reference an unknown target entity property

后端 未结 3 1732
太阳男子
太阳男子 2020-11-29 20:02

I am having an issue in setting up a one to many relationship in my annotated object.

I have the following:

@MappedSuperclass
public abstract class M         


        
3条回答
  •  日久生厌
    2020-11-29 20:40

    public class User implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        @Id
        @Column(name = "USER_ID")
        Long userId;
    
        @OneToMany(fetch = FetchType.LAZY, mappedBy = "sender", cascade = CascadeType.ALL)
        List sender;
    
        @OneToMany(fetch = FetchType.LAZY, mappedBy = "receiver", cascade = CascadeType.ALL)
        List receiver;
    }
    
    public class Notification implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        @Id
    
        @Column(name = "NOTIFICATION_ID")
        Long notificationId;
    
        @Column(name = "TEXT")
        String text;
    
        @Column(name = "ALERT_STATUS")
        @Enumerated(EnumType.STRING)
        AlertStatus alertStatus = AlertStatus.NEW;
    
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "SENDER_ID")
        @JsonIgnore
        User sender;
    
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "RECEIVER_ID")
        @JsonIgnore
        User receiver;
    }
    

    What I understood from the answer. mappedy="sender" value should be the same in the notification model. I will give you an example..

    User model:

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "**sender**", cascade = CascadeType.ALL)
        List sender;
    
        @OneToMany(fetch = FetchType.LAZY, mappedBy = "**receiver**", cascade = CascadeType.ALL)
        List receiver;
    

    Notification model:

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "sender", cascade = CascadeType.ALL)
        List **sender**;
    
        @OneToMany(fetch = FetchType.LAZY, mappedBy = "receiver", cascade = CascadeType.ALL)
        List **receiver**;
    

    I gave bold font to user model and notification field. User model mappedBy="sender " should be equal to notification List sender; and mappedBy="receiver" should be equal to notification List receiver; If not, you will get error.

提交回复
热议问题