Я пытаюсь избавиться от следующей ошибки:
Атрибут [lcritical] в классе сущности [class pl.pwc.docs.pl704.PL704_Error] имеет значение mappedBy, равное [pl704_error], которого нет в принадлежащем ему классе сущности [class pl.pwc.docs.pl704.PL704_Error_Critical].Если владельцем класса сущности является @MappedSuperclass, это недопустимо, и ваш атрибут должен ссылаться на правильный подкласс.
PL704 @Entity class:
@Entity
public class PL704 implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private int Status;
private String Comments;
@OneToMany(mappedBy="pl704", cascade=CascadeType.ALL, targetEntity=PL704_Error.class, fetch=FetchType.EAGER)
private Collection lerror = new ArrayList<PL704_Error>();
//getters, setters...
PL704_Error @Entity class:
@Entity
public class PL704_Error implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String ErrorType;
private String ErrorReason;
private String ErrorLocation;
private String OriginalAttributeValue;
@ManyToOne
@JoinColumn(name = "PL704_ID", referencedColumnName = "ID")
private PL704 pl704;
@OneToMany(mappedBy="pl704_error", cascade=CascadeType.ALL, targetEntity=PL704_Error_Critical.class, fetch=FetchType.EAGER)
private Collection lcritical = new ArrayList<PL704_Error_Critical>();
//getters, setters...
PL704_Error_Critical @Entity class:
@Entity
public class PL704_Error_Critical implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "PL704_ERROR_ID", referencedColumnName = "ID")
private PL704_Error error;
//getters, setters...
Подводя итог, одна PL704
банкаесть много PL704_Error
.В одном PL704_Error
может быть много PL704_Error_Critical
.
Как изменить код для исправления ошибки?
Используется: EclipseLink 2.1.1, H2 Embedded.