java hibernate为mysql连接创建字符串类型的主键
我正在尝试创建一列“条形码”,它将作为主键,类型为string
这就是我正在做的:
// 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<>();
在另一个表中,表1将有一对多映射
//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
# 1 楼答案
我假设你的table one对象实际上是你的条形码对象,它上面有一个@Entity注释
然后,表2对象就是Doc_Mvmnt对象。问题是,您正在针对字符串对象(根据您的错误,该对象不是实体)建立@manytone关系。相反,将“字符串”更改为“条形码”。我还冒昧地让它成为一个私人会员,尽管公众也应该这样做
应该是这样的: