java - 具有旧数据库架构和复合 FK 和 PK 的 Hibernate

标签 java hibernate

我在尝试找到解决方案时遇到了一些麻烦,我认为这可能根本不可能,但我仍然会在这里尝试一下。 因此,让我们假设我在 MySQL 上使用 MyISAM(无 FK)的旧数据库模式具有以下 2 个表:

TblOrder
ORDERID (INT)    PK
CUSTOMERID (INT) PK
REPID (INT)      PK
ISORDER (INT)    PK
other columns...

TblOrderPos
ORDERID (INT)    PK
POSITIONID (INT) PK
other columns

我的注释必须是什么样子才能允许 TblOrder 拥有一组 TblOrderPos(由 ORDERID 标识)并且 TblOrderPos 是一个私有(private) TblOrder 实例?我确实为两个表创建了 EmbeddedId 对象,每次我尝试使用 @ManyToOne 或 @OneToMany 覆盖 @JoinColumns 创建属性时,Hibernate 都会提示 PK 列的数量不匹配(好吧,它不能)。

我真的希望有人有一个想法或者是否有可能。

------------更新------------

在 TblOrder 上

@OneToMany(mappedBy="shoporder")
@JoinColumn(name="ORDERID")
public List<Orderposition> getOrderpositions(){
    return this.positions;
}

public void setOrderPositions(List<Orderposition> positions){
    this.positions = positions;
}

在 TblOrderPos 上

@ManyToOne
@JoinColumn(name="ORDERID")
public Shoporder getShoporder(){
    return this.shoporder;
}

public void setShoporder(Shoporder order){
    this.shoporder = order;
}

这是我不断收到的错误: 从 TblOrderPos 引用 TblOrder 的外键的列数错误。应该是 4

最佳答案

关于java - 具有旧数据库架构和复合 FK 和 PK 的 Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10107455/

相关文章:

java - 在 Maven 中添加 Hibernate 依赖项

java - Realm 每次添加新数据并保留旧数据

sql - 使用 Hibernate 进行不区分大小写的搜索

Hibernate Annotations - 如何从映射中排除 bean 字段?

java - 创建的可执行 jar 文件未执行

java - JSP 页面提交的输入路径 ID 总是被@ModelAttribute 解释为零,因此无法更新模型对象

Spring 启动: How to keep DDD entities clean from JPA/Hibernate Annotations?

java - 从 eclipse 导出我的 Java 游戏,运行时出现错误

java - 如何使用 Java 连接 Cassandra 与 Spark。

java - 在 Java 8 并行流中,终端操作是否在返回之前完成所有计算?