【问题标题】:Casued Hibernate by (One-toOne) : org.hibernate.AnnotationException: Unknown mappedBy in: referenced property unknown:由(一对一)导致休眠:org.hibernate.AnnotationException:Unknown mappedBy in:引用的属性未知:
【发布时间】:2018-07-23 06:01:01
【问题描述】:

我试图在 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

【问题讨论】:

    标签: java hibernate one-to-one hibernate-annotations


    【解决方案1】:

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

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

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

    【讨论】:

    • 我会添加@JoinColumn 但会出现同样的异常。
    • @OneToOne(mappedBy = "vegetable", cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "Vegetable_Stock") 私有股票;
    • 您不应使用 mappedBy = "vegetable" 属性,因为您的 Stock 类中没有蔬菜字段。只需使用@JoinColumn(具有正确的值)就足够了
    • 好的,我会删除它。
    • Unknown MappedBy Remove but new Exception raise OneToOne or ManyToOne on com.javabootstar.grofers.domain.Vegetable.stock 引用了一个未知实体:com.javabootstar.grofers.domain.Stock
    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 2016-02-05
    • 2014-11-04
    • 1970-01-01
    • 2011-08-15
    • 2016-01-13
    相关资源
    最近更新 更多