我试图使用休眠将记录插入表中。表格结构如下

CREATE TABLE MYTABLE
(
    TRADE_ID NUMBER(18,0) NOT NULL,
    EFFECTIVE_DATE DATE NOT NULL,
    AMOUNT BINARY_DOUBLE NOT NULL ENABLE,
    CREATED_TS TIMESTAMP (6),
    UPDATED_TS TIMESTAMP (6),
    CONSTRAINT MYTABLE_PK PRIMARY KEY ("TRADE_ID", "EFFECTIVE_DATE")
) ;


能否请您帮我提供组合键的映射XML?

最佳答案

在您的mytable.hbm.xml文件中尝试类似的操作。

  <composite-id name="id" class="MyCompositeKeyClass">
     <key-property name="tradeId" column="TRADE_ID" type="integer"/>
     <key-property name="effectiveDate" column="EFFECTIVE_DATE" type="date"/>
  </composite-id>


然后,在您的MyCompositeKeyClass类中,您可以定义tradeIdeffectiveDate字段。

public class MyCompositeKeyClass implements Serializable {
   private Integer tradeId;
   private Date effectiveDate;

   public MyCompositeKeyClass() {
   }
   // setters, getters
}


在您的MyTable类中,您应该添加一个字段

private MyCompositeKeyClass id;

10-07 19:21