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

时间:2015-02-13 19:33:44

标签: java mysql hibernate

我正在尝试创建一个“条形码”列,它是主键和字符串类型。

这就是我在做的事情:

// 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

1 个答案:

答案 0 :(得分:2)

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

然后,你的table-two对象就是你的Doc_Mvmnt对象。问题是您正在针对String对象(根据您的错误不是实体)建立@ManyToOne关系。相反,将“String”更改为“Barcode”。我也冒昧地把它变成私人会员,即使公众也应该这样做。

它应该是这样的:

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