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>