gpt4 book ai didi

java - hibernate - 为mysql连接创建字符串类型的主键

转载 作者:行者123 更新时间:2023-11-29 06:30:03 24 4
gpt4 key购买 nike

我正在尝试创建一个“条形码”列,该列将作为主键且类型为字符串。

这就是我正在做的:

// 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<>();

在另一个地方,table-one 将有一对多的映射

//for table-two
@ManyToOne
@JoinColumn(name = "BARCODE", nullable=false)
public String barcode;

我收到异常:线程“main”中的异常 org.hibernate.AnnotationException:@OneToOne 或 @ManyToOne on database.Doc_Mvmnt.barcode 引用了一个未知实体:java.lang.String

最佳答案

我假设您的 table-one 对象实际上是您的 Barcode 对象,并且它上面有一个 @Entity 注释。

然后,您的 table-two 对象就是您的 Doc_Mvmnt 对象。问题是您正在针对 String 对象(根据您的错误,这不是实体)建立 @ManyToOne 关系。相反,将“字符串”更改为“条形码”。我还冒昧地将其设为私有(private)成员,尽管公共(public)成员也应该起作用。

它应该是这样的:

//for table-two
@ManyToOne
@JoinColumn(name = "BARCODE", nullable=false)
private Barcode barcode;

关于java - hibernate - 为mysql连接创建字符串类型的主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28507348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com