[英]hibernate - create a primary key of string type for mysql connection
我正在尝试创建一列“条形码”,该列将成为主键,并且为字符串类型。
这就是我在做什么:
// 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
的异常: Exception in thread "main" org.hibernate.AnnotationException: @OneToOne or @ManyToOne on database.Doc_Mvmnt.barcode references an unknown entity: java.lang.String
我假设您的表一对象实际上是您的Barcode对象,并且上面带有@Entity批注。
然后,第二个表对象是Doc_Mvmnt对象。 问题是您正在针对String对象(根据您的错误不是实体)建立@ManyToOne关系。 而是将“字符串”更改为“条形码”。 我也自由地将其设置为私人会员,即使公众也应该这样做。
它看起来应该像这样:
//for table-two
@ManyToOne
@JoinColumn(name = "BARCODE", nullable=false)
private Barcode barcode;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.