It seems like you defined your department property twice. Once in a simple property, once in the many-to-one definition. Was it made on purpose? If so, which one?
Hence, I guess you should replace the provided mapping with the following (please use code tags when pasting code) :
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="EmplMaster" table="empl_master">
<id column="EmployeeId" name="employeeId" type="string">
</id>
<!-- comment it out
<property column="DepartmentCode" length="10" name="departmentcode" type="string" />
-->
<property name="supervisor" column="Supervisor" length="50" />
<many-to-one name="department" class="Department"
column="departmentcode" not-null="true" lazy="false"
optimistic-lock="true" insert="false" update="false" outer-join="true" unique="false">
</many-to-one>
</class>
<query name="empList">
<![CDATA[from EmplMaster as e left join fetch e.department]]>
</query>
</hibernate-mapping>