私の外部キーと主キーは同じ名前なので、@ManyToOneリレーションを使用する際に問題があります。したがって、Hibernateは現在のテーブルの列名としてマップされているものを考慮しています。 だから私は@JoinColumn注釈のテーブル属性を使用すると思ったが、それは動作していないようだ。私はそれが価値のための実際のテーブルを与えたが、それは取っていない。クラス名も試しました。下記の はエンティティです。両方のテーブルでPRJ_NBRが同じであることがわかります。だから、私は期待二次テーブルが見つかりませんのようなエラーを取得していたプロジェクトを実行しようとすると:私はエラーになっています@JoinColumnからテーブル属性を削除した場合誰かが@JoinColumnアノテーションのテーブル属性の使い方を知っていますか?私は実際のテーブル名またはエンティティ名を与える必要がありますか?
なしHEADを - に繰り返し列をエンティティのマッピング:com.example.jpademo.Detailコラム:PRJ_NBR(挿入= "false" を更新= "false" にしてマッピングする必要があります)
@Entity(name="Head")
@Table(name = "HEAD")
public class QuoteHead {
@Id
@Column(name = "PRJ_NBR")
private Integer projNumber;
@Column(name = "CUS_SYS_ID")
private Integer cusSysId;
@OneToMany(mappedBy = "head", cascade = CascadeType.ALL, orphanRemoval =
true)
private List<Detail> details = new ArrayList<Detail>();
}
@Entity
@Table(name = "DETAIL")
@JsonIgnoreProperties
public class Detail {
@Transient
private Integer projectNumber;
@Transient
private Integer itemNumber;
@Transient
private Integer sequenceNumber;
@ManyToOne
@JoinColumn(name = "PRJ_NBR", table = "HEAD")
private Head head;
@JsonIgnore
@EmbeddedId
private DetailCompositeId id;
}
@Embeddable
public class DetailCompositeId implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "PRJ_NBR")
private Integer projectNumber;
@Column(name = "ITM_NBR")
private Integer itemNum;
@Column(name = "SEQ_NBR")
private Integer sequenceNumber;
}
(だけでなく、関連するDBスキーマ)あなたのエンティティを共有してください。 。 '私の外部キーと主キーの名前が同じです' – crizzis
説明を更新します –