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

标签 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<>();

在另一个地方,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/

相关文章:

mysql和日期比较带日期函数和不带日期函数

PHP/MYSQL 需要 SQL Join 吗?

java - Java 中的类型转换

java - java有损音频编码

java - Spring Kafka 管理客户端多个引导服务器 Kafka 具有安全性(jass_config)

php - 查询语法不正确

java - 获取连接到特定节点的所有节点的索引

java - 在 native Hibernate 中设置 FetchMode

java - JPA HIBERNATE - 将列映射两次(embeddedID 和 POJO)

java - 如何为 hibernate > 4.3 导出模式