My previous post would handle that situation: the important point is the property-ref attribute.
If you don't want to use a collection mapping (like <set>), then your mapping is close. The main problem is that you used a key-property instead of a key-many-to-one: if you use a key-property in Class2 to refer to the PK of Class1, then hibernate has no idea that they're actually the same thing. They're separate values. Change
Code:
<composite-id>
<key-property name="dsc_id" column="DSC_ID"/>
<key-property name="lang" column="LANG"/>
</composite-id>
to
Code:
<composite-id>
<key-many-to-one name="dsc_id" column="DSC_ID" class="Class1"/>
<key-property name="lang" column="LANG"/>
</composite-id>
Read up on that attribute, it's in section 5.1.5, "composite-id", of the 3.1 ref docs (though admittedly, the documentation on key-many-to-one is quite poor).
When posting code, please use code tags. The code you posted is very hard to read.