Hibernate - 映射外部表

时间:2012-02-02 21:38:31

标签: hibernate hql

我有2个oracle表。其中一个是oracle外部表,另一个是带有主键的标准oracle表。我希望能够使用LEFT OUTER JOIN从两个表中选择列。我只是不确定如何为外部表设置hql映射,因为它没有主键。

外部表DDL

CREATE TABLE MY_EXTERNAL
(
  TRANSDATE                   VARCHAR2(8),
  ACC_NO                      VARCHAR2(10),
  TRANSID                     VARCHAR2(20),
  ID                          VARCHAR2(16),
  FEE                         NUMBER(17),
  AMOUNT                      NUMBER(17)
)
ORGANIZATION EXTERNAL
( 
  DEFAULT DIRECTORY MY_EXTERNAL_DIR
  ACCESS PARAMETERS
  (
     RECORDS DELIMITED BY NEWLINE
     FIELDS TERMINATED BY ','
     OPTIONALLY ENCLOSED BY '"'
  )
  LOCATION ('my_feed.dat')
)

要加入的表的DDL

CREATE TABLE ACCTINFO
(
  SEQ NUMBER(12),
  IDENT     VARCHAR2(16),
  AVAILBAL  NUMBER(17),
  HOLDONOD  CHAR(1)
)
CREATE UNIQUE INDEX "ACCTINFO_PK" ON ACCTINFO
( SEQ )
CREATE INDEX IDENT_IDX ON ACCTINFO
( IDENT )

我想选择MY_EXTERNALACCTINFO中的所有内容,如果使用ID MY_EXTERNALIDENT ACCTINFO < / p>

我很感激在设置课程和查询时可以获得的任何帮助

1 个答案:

答案 0 :(得分:0)

使用组件集合,您不需要自己的唯一ID,只需要连接列

<bag name="externals" table="MY_EXTERNAL">
  <key column="id" property-ref="IDENT">
  <composite-element>
    <property name=" transactionDate" column="TRANSDATE" />
    ...
  </composite-element>
</bag>