• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

One-to-one:property-ref to a part of composite-key

 
Sandeep Vaid
Ranch Hand
Posts: 392
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I have 2 classes viz. Product and ProductBasic having one-to-one relationship
Product is mapped to a table PRODUCT which has PRODUCTID as PK.
ProductBasic is mapped to a table PRODUCTBASIC which has PRODUCTID,USECODE and STARTTTIME as composite key.

My database is legacy and i cannot change it.
I get the one-to-one relationship by applying the condition as:
PRODUCT.PRODUCTID=PRODUCTBASIC.PRODUCTID and USECODE='008' and STARTTIME < CURRENTIME < ENDTIME..
My database values are such that if i apply this condition i will only get once record..

In Product.hbm.xml:

<class name="Product" table="PRODUCT"
><id name="pid" type="string" column="PRODUCTID" length="10">
<generator class="assigned"></generator>
</id>

<one-to-one name="productBasic" class="ProductBasic" constrained="true" outer-join="false" cascade="save-update" property-ref="activeProductBasic" >
<formula>PRODUCTID</formula>
</one-to-one>
</class>


In ProductBasic.hbm.xml

<class name="ProductBasic" table="PRODUCTBASIC">
<composite-id name="compProductBasic" class="CompProductRelatedAssociations">
<key-property name="productId" column="PRODUCTID" type="string" length="10" />
<key-property name="useCode" column="USECODE" type="string" length="10" />
<key-property name="startTime" column="STARTTIME" type="timestamp"/>
</composite-id>

<properties name="activeProductBasic">
<property name="compProductBasic.productId" column="PRODUCTID" type="string" length="10" insert="false" update="false"/>
</properties>
</class>

but this compProductBasic.productId is giving me error...
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic