You can use the the Criteria API to search based on the description if you mapped it as the first way I suggested.
Quote:
<many-to-one name="statusDesc" class="com.something.StatusDescription" insert="false" update="false" cascade="none" column="statusId" outer-join="true"/>
In your criteria you can then do the following:
Code:
Criteria criteria = Session.createCriteria(YourClass.class);
criteria = criteria.createCriteria("statusDesc").add(Expression.eq("description", whateverTheUserTypedToSearchBy));
List results = criteria.list();
This will give you back all of the instances of
YourClass that have a status description where the description String == what your users are searching for.
I know this works because I've done it in my project.