2

休止状態の注釈マッピングに大きな問題があります。私の図は次のとおりです。

ダイアグラム

オブジェクトのマッピングに関しては、その 1...N の単純な原因はほとんどあり
TASK_DEF -> REPORT_DATA
REPORT_DATA -> REPORT_DATA_COLUMN
REPORT_DATA -> REPORT_DATA_VALUE
ません。

今問題は、 Collection を にマップしようとしているときREPORT_DATA_VALUEですREPORT_DATA_COLUMN。私はこの方法を試しました:

@OneToMany(fetch = FetchType.LAZY)
@ForeignKey(name = "FK_REPORT_DATA_VALUE_REPORT_DA", inverseName = "PK_REPORT_DATA_COLUMN")
@JoinTable(name = "REPORT_DATA_VALUE", joinColumns = {
        @JoinColumn(name = "REPORT_DATA_ID"),
        @JoinColumn(name = "COLUMN_NM")
}, inverseJoinColumns = {
        @JoinColumn(name = "REPORT_DATA_ID"),
        @JoinColumn(name = "COLUMN_NM")
})    
List<ReportDataValue> reportDataValueList;

しかし、休止状態は間違った識別を選択するため、クエリを実行できませんでした。誰かがこれで私を助けることができますか?

4

1 に答える 1

2

コードに問題があります。代わりにこれを試してください:

@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "REPORT_DATA_VALUE", joinColumns = {
    @JoinColumn(name = "REPORT_DATA_ID"),
}, inverseJoinColumns = {
    @JoinColumn(name = "COLUMN_NM")
})    
List<ReportDataValue> reportDataValueList;

ところで、もし私があなたなら、One To Many のテーブルを作成しません。私はこれをします:

public class A{
    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="B_ID")
    B b;
}

public class B{
    @OneToMany(mappedBy="b",fetch=FetchType.EAGER)
    Set<A> as;
}
于 2012-07-16T12:48:07.303 に答える