我正在尝试从名为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
过滤掉地址对象。
我希望这是有道理的。在此先感谢您的帮助。 :)
答案 0 :(得分: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问题(请参阅What is SELECT N+1? ),因为这会破坏您的一天,这可能会在您获得初始问题排序......