Java JPA一通一通,多通双向
我正在尝试消除以下错误: 实体中的属性[lcritical] 阶级 pl.pwc.docs.pl704.pl704_错误]具有 [pl704_error]的mappedBy值 在其所属实体中不存在 阶级 pl.pwc.docs.pl704.pl704\u错误\u严重]。 如果拥有的实体类是 @MappedSuperclass,这是无效的, 您的属性应该引用 正确的子类 PL704@实体类:Java JPA一通一通,多通双向,java,jpa,jpa-2.0,Java,Jpa,Jpa 2.0,我正在尝试消除以下错误: 实体中的属性[lcritical] 阶级 pl.pwc.docs.pl704.pl704_错误]具有 [pl704_error]的mappedBy值 在其所属实体中不存在 阶级 pl.pwc.docs.pl704.pl704\u错误\u严重]。 如果拥有的实体类是 @MappedSuperclass,这是无效的, 您的属性应该引用 正确的子类 PL704@实体类: @Entity public class PL704 implements Serializable
@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...
@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...
@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\u错误
。一个PL704\u错误
可以有多个PL704\u错误
我应该如何更改代码以修复错误
使用:EclipseLink 2.1.1,H2嵌入。应该是
@OneToMany(mappedBy="error", cascade=CascadeType.ALL,
targetEntity=PL704_Error_Critical.class, fetch=FetchType.EAGER)
private Collection lcritical = new ArrayList<PL704_Error_Critical>();
应该是
@OneToMany(mappedBy="error", cascade=CascadeType.ALL,
targetEntity=PL704_Error_Critical.class, fetch=FetchType.EAGER)
private Collection lcritical = new ArrayList<PL704_Error_Critical>();
映射的“按属性”拼写不正确,可能是因为: 在类PL704_Error中,lcritical属性由属性反向映射
@OneToMany(mappedBy="pl704_error"...
但是PL704_Error_Critical中的变量仅被称为
Error
映射的属性拼写不正确,可能这是原因:
在类PL704_Error中,lcritical属性由属性反向映射
@OneToMany(mappedBy="pl704_error"...
但是PL704_Error_Critical中的变量只被称为
Error
OK,但现在我有一个奇怪的问题:“异常描述:[class pl.pwc.docs.PL704.PL704_Error]使用非实体[class pl.pwc.docs.PL704.PL704_Error_Critical]作为关系属性[field lccritical]中的目标实体。”,5分钟后,它神奇地开始工作。上面仍然有异常。@monczek:你解决过上面的异常吗?我也有同样的问题。好吧,但现在我有点奇怪:“异常描述:[class pl.pwc.docs.pl704.pl704_Error]使用非实体[class pl.pwc.docs.pl704.pl704_Error_Critical]作为关系属性[field lccritical]中的目标实体。”,5分钟后,它神奇地开始工作。上面仍然有异常。@monczek:你解决过上面的异常吗?我也有同样的问题。