0

以下のように定義されているSTUDENT_ADDRESSというテーブルからStudentオブジェクトとAddressオブジェクトを作成しようとしています。

Table Name: STUDENT_ADDRESS
Columns:
STUDENT_ID
STUDENT_NAME
STUDENT_END_DATE
STUDENT_ADDRESS_END_DATE
ADDRESS_ID
ADDRESS_VALUE
ADDRESS_END_DATE

これは、これまでに作成できる中で最も非効率的なテーブルであることを認識しています。しかし、テーブルの構造を変更することは、私がおそらく負けるであろう困難な戦いです。

私がやろうとしているのは、Addressオブジェクトのセットを持つStudentオブジェクトを作成することです。アドレスオブジェクトは、との両方に基づいてフィルターで除外できSTUDENT_ADDRESS_END_DATEますADDRESS_END_DATE

それが理にかなっていることを願っています。よろしくお願いします。:)

4

1 に答える 1

0

これは、「発生するのを待っている災害」の下のHibernateレシピで調べることができます:)

しかし、もしあなたが本当にそうしなければならないのなら、多分それを弁別器で試してみませんか?

しかし、これが1対多の関係になるかどうかはわかりません。

@Entity  
@Table( name =  "OBJECT")  
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)  
@DiscriminatorColumn(   
    name="OBJ_TYPE",  
    discriminatorType=DiscriminatorType.STRING,  
    length=1  
)  
@DiscriminatorValue("c")  

public class ObjOne {  
...  
}

@DiscriminatorValue("b")
public class ObjTwo {
....
}

+ 1の問題が発生することに注意してください(SELECT N + 1とは何ですか?を参照してください。)単一のテーブル内に階層を構築する場合、これは1日を台無しにするため、最初の問題を並べ替えた後はおそらくうまくいきました...

于 2013-03-11T22:50:47.843 に答える