As written, Hibernate will try to join your tables on accessoryContent.accessoryId = Accessory.AccessoryPriceId (quick tangent: capitalization is not consistent between tables--is that intentional?). The easiest solution is to add property-ref="accessoryId" to the key element so it knows not to attempt a join on Accessory's primary key.
see
http://www.hibernate.org/hib_docs/v3/reference/en/html/mapping.html#mapping-declaration-key
A different approach, which may or may not make sense in your case, would be to 'invert' the roles of the two tables, something like:
Code:
<hibernate-mapping package="com.mitsubishi.mmsa.hib">
<class name="Accessory" table="accessoryContent">
<cache usage="read-write" region="standardCache"/>
<id name="accessoryId" column="accessoryId" type="integer">
<generator class="native"/>
</id>
<property name="accessoryName" column="AccessoryName"/>
<join table="Accessory">
<key column="AccessoryId"/>
<property name="accessoryPriceId" column="AccessoryPriceId" type="integer">
</join>
</class>
</hibernate-mapping>
This has the advantage that the foreign key relationship is more 'natural', from a non-pk column in the joined table to the pk of the main table. Of course, it also changes the id of your aggregate object from accessoryPriceId to accessoryId, which may not be what you want, but that's up to you.