繁体   English   中英

休眠-为mysql连接创建字符串类型的主键

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM