我需要将两个表映射到一个类,无法解决这个问题。一张桌子是ROOMS,另一个是TRAINERS。休眠映射两个表到一个类
室表:
OOC_UNIT_ID NUMBER(6,0)
OOC_START_DT DATE
OOC_START_TM DATE
OOC_DT_MOD DATE
OOC_USER_MOD VARCHAR2(30 BYTE)
OOC_END_DT DATE
OOC_END_TM DATE
OOC_REASON_TX VARCHAR2(250 BYTE)
OOC_RESERVED_FOR VARCHAR2(30 BYTE)
OOC_CLS_ID NUMBER(9,0)
OOC_TIMEFRAME VARCHAR2(1 BYTE)
OOC_WSD_CD VARCHAR2(2 BYTE)
OOC_TEAM_UNIT_ID NUMBER(6,0)
OOC_WSD_ACT_RMAT_ID NUMBER(6,0)
训练者表:
TRSC_ID NUMBER(9,0) -- generated sequence
TRSC_OOC_UNIT_ID NUMBER(6,0)
TRSC_OOC_START_DT DATE
TRSC_OOC_START_TM DATE
TRSC_OOC_RESERVED_FOR VARCHAR2(30 BYTE)
TRSC_TPOC_ID NUMBER(6,0)
TRSC_DT_CREATED DATE
TRSC_USER_CREATED VARCHAR2(30 BYTE)
TRSC_DT_MOD DATE
TRSC_USER_MOD VARCHAR2(30 BYTE)
TRSC_REMARKS VARCHAR2(250 BYTE)
TRSC_NOSHOW_REASON VARCHAR2(100 BYTE)
表格应于OOC_UNIT_ID=TRSC_OOC_UNIT_ID
,OOC_START_DT=TRSC_OOC_START_DT
和OOC_START_TM=TRSC_OOC_START_TM
接合。
ROOMS表的主键为:OOC_UNIT_ID, OOC_START_DT, OOC_START_TM
。 TRAINERS表的主键是:TRSC_ID
。
我需要OOC_UNIT_ID
,OOC_START_DT
,OOC_START_TM
,OOC_END_DT
,OOC_END_TM
和OOC_WSD_ACT_RMAT_ID
查询这个数据。
在SQL它可能是这样的:
SELECT *
FROM TRAINERS t, ROOMS r
WHERE t.TRSC_OOC_UNIT_ID = r.OOC_UNIT_ID
AND t.TRSC_OOC_START_DT = r.OOC_START_DT
AND t.TRSC_OOC_START_TM = r.OOC_START_TM
AND ...
我使用的客房表中的项目和其他地方它已经被映射为一个独立的对象。会不会有一种方法可以将其作为TRAINERS对象上的子对象使用,还是将这两个表映射为一个扁平对象会更容易?地图的外观如何?使用包括Hibernate任何ORM时
感谢, 尼克
看起来**真的很奇怪,因为ROOMS和TRAINERS似乎是非常不同的概念。培训师和房间之间的关系是什么?训练师是一个房间吗? – 2009-11-03 23:41:30
这是非常错误的。插入/删除会同时影响两个表格,每当您尝试使用“房间”对象时,您都会加入“TRAINERS”。房间和培训师有一对多(或多对多)协会,他们当然不属于一个等级。 – ChssPly76 2009-11-04 06:32:05