これに対する解決策を見つけるのに苦労しています。まったく不可能かもしれないと思いますが、ここで試してみます。MyISAM (FK なし) を使用した MySQL 上のレガシー DB スキーマに、次の 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 がプライベート 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である必要があります