I want, join should be performed on 3 properties out of which 2 are normal properties and one is part of composite key.
How can i specify these 3 properties inside <properties> tag ?
Code:
<class name="Product" table="PRODUCT" optimistic-lock="version">
<id name="productId" column="PRODUCTID">
<generator class="assigned" />
</id>
<one-to-one name="productBasic" class="ProductBasic" cascade="save-update" property-ref="activeProduct">
<formula>'001'</formula>
<formula>TIMESTAMP ('9999-12-31 00:00:00.0')</formula>
<formula>PRODUCTID</formula>
</one-to-one>
</class>
<class name="ProductBasic" table="PRODUCTBASIC" optimistic-lock="version">
<composite-id name="compProductBasicBO" class="com.tietoenator.lis.db.impl.product.bo.CompProductBasicBO">
<key-property name="productId" column="PRODUCTID" ></key-property>
<key-property name="useType" column="USETYPE" ></key-property>
<key-property name="startTimeStamp" column="STARTTIMESTAMP" ></key-property>
</composite-id>
<properties name="activeProduct">
<!-- <property name="compProductBasicBO.useType" column="USETYPE" ></property> -->
<property name="endTimeStamp" column="ENDTIMESTAMP" ></property>
<many-to-one name="productBO" class="ProductBO" column="PRODUCTID" insert="false" update="false"/>
</properties>
</class>
The problem is with useType mapping.
Quote:
org.hibernate.PropertyNotFoundException: Could not find a getter for compProductBasicBO.useType in class com.tietoenator.lis.db.impl.product.bo.ProductBasicBO
at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:282)
at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:275)