【问题标题】:How do I specify a multi-column id in orm xml for a JPA entity?如何在 orm xml 中为 JPA 实体指定多列 ID?
【发布时间】:2026-01-04 03:50:01
【问题描述】:

我正在尝试创建一个由没有 id 的视图支持的 JPA 实体。行由两列唯一定义,即产品 ID 和节点 ID。如何指定实体的 id 是多列 id,并使用 xml,而不是注释?

【问题讨论】:

    标签: xml orm jpa entity


    【解决方案1】:

    我将“id”指定为我的 id 的名称,而不是 Java 实体的属性名称。我有这个:

    <entity class="com.MyEntity" name="MyEntity">
       <table name="MY_TABLE"/>
       <attributes>
           <id name="id">
               <column name ="NODE_ID" nullable="false"/> 
           </id>
           <id name="id">
               <column name ="PRODUCT_ID" nullable="false"/> 
           </id>
           <basic name="name"><column name="NAME" nullable="false"/></basic>
       </attributes>
    

    应该是这样的:

    <entity class="com.MyEntity" name="MyEntity">
       <table name="MY_TABLE"/>
       <attributes>
           <id name="nodeId">
               <column name ="NODE_ID" nullable="false"/> 
           </id>
           <id name="productId">
               <column name ="PRODUCT_ID" nullable="false"/> 
           </id>
           <basic name="name"><column name="NAME" nullable="false"/></basic>
       </attributes>
    

    【讨论】: