休眠时间(一对一):org.Hibernate.AnnotationException:中的未知mappedBy:引用的



我试图在hibernate中创建一对一关系,当我实现这个关系时,我会得到org.hibernate。AnnotationException。请识别错误并建议我。

蔬菜类

@SuppressWarnings("serial")
@Entity
@Table(name = "Vegetables")
@Access(value = AccessType.FIELD)
public class Vegetable implements Serializable  {
@Id
@Column(name = "P_ID")
private String productID;
@Column(name = "Product_Name")
private String productName;
@Column(name = "Description")
private String description;
@Column(name = "In_Item")
private LocalDate localDateIn;
@Column(name = "Out_Item")
private LocalDate localDateOut;
@OneToOne(mappedBy = "vegetable", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Stock stock;
//getter & setter
}

股票类别

@SuppressWarnings("serial")
@Entity
@Table(name="STOCK")
@Access(value=AccessType.FIELD)
public class Stock implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer sId;
@Column(name="stockLevel")
private Integer stockLevel;
@Column(name="StockUSed")
private Integer stockUsed;
@Column(name="Availablity")
private Integer availablity;
@Column(name="OutOfStock")
private Integer outOfStock;
//getter & setter
}

异常

Caused by: org.hibernate.AnnotationException: Unknown mappedBy in: com.javabootstar.grofers.domain.Vegetable.stock, referenced property unknown: com.javabootstar.grofers.domain.Stock.vegetable

您没有正确使用@OneToOne中的mappedBy属性。MappedBy属性表示关系的键在另一边。

在你的情况下,它期望你的股票类中有菜地(不可用(,这就是你面临这个例外的原因。

您应该使用@JoinColumn注释来映射蔬菜类中的外键

最新更新