有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    我假设你的table one对象实际上是你的条形码对象,它上面有一个@Entity注释

    然后,表2对象就是Doc_Mvmnt对象。问题是,您正在针对字符串对象(根据您的错误,该对象不是实体)建立@manytone关系。相反,将“字符串”更改为“条形码”。我还冒昧地让它成为一个私人会员,尽管公众也应该这样做

    应该是这样的:

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