0

我正在尝试从一个名为 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

我知道这是可以创建的效率最低的表。但是改变表结构是一场艰苦的战斗,我很可能会输。

我要做的是创建一个具有一组地址对象的 Student 对象,并且可以根据STUDENT_ADDRESS_END_DATE和过滤掉地址对象ADDRESS_END_DATE

我希望这是有道理的。在此先感谢您的帮助。:)

4

1 回答 1

0

您可以在“等待发生的灾难”下的 Hibernate 食谱中查找此内容:)

但是,如果您真的必须那么也许可以尝试使用鉴别器?

我不确定这是否会建立一对多的关系。

@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?) 在单个表中构建层次结构时,因为这会毁了你的一天,在你对最初的问题进行排序之后,这可能会很顺利......

于 2013-03-11T22:50:47.843 回答