首页 > 解决方案 > 由(一对一)导致休眠: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

标签: javahibernateone-to-onehibernate-annotations

解决方案


您没有正确mappedBy使用@OneToOne. MappedBy 属性表明关系的关键在另一端。

在您的情况下,它期望您的 Stock 类中的菜地(不可用),这就是您面临此异常的原因。

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


推荐阅读