我正在尝试创建一个“条形码”列,它是主键和字符串类型。
这就是我在做的事情:
// for table-one
@Id
@Column(name = "BARCODE", nullable=false)
private String barcode;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "BARCODE")
private List<Doc_Mvmnt> doc_mvmnt = new ArrayList<>();
并且在另一个表中,一个人将有一对多的映射
//for table-two
@ManyToOne
@JoinColumn(name = "BARCODE", nullable=false)
public String barcode;
我收到了异常:
Exception in thread "main" org.hibernate.AnnotationException: @OneToOne or @ManyToOne on database.Doc_Mvmnt.barcode references an unknown entity: java.lang.String
答案 0 :(得分:2)
我假设你的table-one对象实际上是你的Barcode对象,它上面有一个@Entity注释。
然后,你的table-two对象就是你的Doc_Mvmnt对象。问题是您正在针对String对象(根据您的错误不是实体)建立@ManyToOne关系。相反,将“String”更改为“Barcode”。我也冒昧地把它变成私人会员,即使公众也应该这样做。
它应该是这样的:
//for table-two
@ManyToOne
@JoinColumn(name = "BARCODE", nullable=false)
private Barcode barcode;