java - 由(一对一)导致休眠:org.hibernate.AnnotationException:Unknown mappedBy in:引用的属性未知:
问题描述
我试图在休眠中创建一对一的关系,当我实现这种关系时,我得到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
解决方案
您没有正确mappedBy
使用@OneToOne
. MappedBy 属性表明关系的关键在另一端。
在您的情况下,它期望您的 Stock 类中的菜地(不可用),这就是您面临此异常的原因。
您应该使用@JoinColumn
注释来映射蔬菜类中的外键
推荐阅读
- git - 如何知道创建实际分支的分支的名称?
- react-native - 在带有样式组件的本机反应中应用样式
- mongodb - Mongo在文档的嵌套数组中分组和分页
- jquery - jQuery 切换 (jQuery UI) 和 Bootstrap 布局中断
- ruby-on-rails - 导入 xlsx 文件时如何忽略重复项?
- java - 使用此对象递增值不起作用
- java - 如何在 Intellij 中为 scala 的所有字段生成 getter 和 setter
- java - 命令行参数
- apache-flink - Flink - 从流式传输到批处理 - 从另一个开始作业
- python - 在运行阶段之前定义一个函数来迭代一个张量