Hi
 
Can you please give more elaborate explanation.
 
I changed person.java to look like
 
public class Person
{
  private int id;
  private String firstName;
  private String lastName;
  private Date birthDate;
  private double weightInKilograms;
  private double heightInMeters;
  private int deptNumber;
  private Dept dept;
  
  public int getId()
  {
   return id;
  }
  
  public void setId(int id)
  {
   this.id = id;
  }
  public String getFirstName()
  {
   return firstName;
  }
  
  public void setFirstName(String firstName)
  {
   this.firstName = firstName;
  }
  public String getLastName()
  {
   return lastName;
  }
  
  public void setLastName(String lastName)
  {
   this.lastName = lastName;
  }
  
  public Date getBirthDate()
  {
   return birthDate;
  }
  
  public void setBirthDate(Date birthDate)
  {
   this.birthDate = birthDate;
  }
  public double getWeightInKilograms()
  {
   return weightInKilograms;
  }
  
  public void setWeightInKilograms(double weightInKilograms)
  {
   this.weightInKilograms = weightInKilograms;
   ;}
  public double getHeightInMeters()
  {
   return heightInMeters;
  }
  
  public void setHeightInMeters(double heightInMeters)
  {
   this.heightInMeters = heightInMeters;
  }
  public int getDeptNumber()
  {
   return deptNumber;
  }
  
  public void setDeptNumber(int deptNumber)
  {
   this.deptNumber = deptNumber;
  }  
  
  public void setDeptName(String deptName)
  {
   this.dept.setDeptName(deptName);
  }
  public String getDeptName()
  {
   return dept.getDeptName();
  }
  public void setDeptId(int deptId)
  {
   this.dept.setDeptId(deptId);
  }
  
  public int getDeptId()
  {
   return dept.getDeptId();
  }
}

and Dept.java is,
public class Dept
{
  private int deptId;
  private String deptName;
  
  public int getDeptId()
  {
   return deptId;
  }
  
  public void setDeptId(int deptId)
  {
   this.deptId = deptId;
  }
  public String getDeptName()
  {
   return deptName;
  }
  
  public void setDeptName(String deptName)
  {
   this.deptName = deptName;
  }
}
and the Person.xml is like
 
<typeAlias alias="dept" type="com.pfizer.geca.batchProcess.Dept"/>
 
<resultMap id="personMap" class="com.pfizer.geca.batchProcess.Person">
<result property="firstName" column="PER_FIRST_NAME"/>
<result property="dept.name" column="DEPT_NAME"/>
</resultMap>
 
<select id="getPersonByDept1" resultMap="personMap">
SELECT
PER_FIRST_NAME,
DEPT_NAME
FROM PERSON, DEPT
WHERE DEPT.DEPT_NO = PERSON.DEPT_NO
AND DEPT.DEPT_NO=#value#
</select>
 
It throws me this error,
 
Caused by: com.ibatis.common.exception.NestedRuntimeException: Error configuring Result. Could not set ResultClass. Cause: java.lang.ClassNotFoundException: com.comp.app.batchProcess.Person
Caused by: java.lang.ClassNotFoundException: com.comp.app.batchProcess.Person
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:45)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$11.process(SqlMapConfigParser.java:347)
at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:112)
... 8 more
Caused by: com.ibatis.common.exception.NestedRuntimeException: Error parsing XPath '/sqlMap/resultMap'. Cause: com.ibatis.common.exception.NestedRuntimeException: Error configuring Result. Could not set ResultClass. Cause: java.lang.ClassNotFoundException: com.comp.app.batchProcess.Person
Caused by: java.lang.ClassNotFoundException: com.comp.app.batchProcess.Person
Caused by: com.ibatis.common.exception.NestedRuntimeException: Error configuring Result. Could not set ResultClass. Cause: java.lang.ClassNotFoundException: com.comp.app.batchProcess.Person
 
Could you please let me know what should be done
 
Thanks
 
Zarar Siddiqi <[EMAIL PROTECTED]> wrote:
Consider using composition:
 
public class Person {
    private Dept dept;
    ...
}
 
Then you can use a resultMap and assign values to bean properties by doing:
 
<result property="dept.name" column="PER_DEPT_NAME"/>
 
So you'll have:
 
<select id="getPerson" resultMap="personMap">
    ....
</select>
 
<resultMap id="personMap" class="com.comp.app.batchProcess.Person">
    <result property="dept.name" column="PER_DEPT_NAME"/>
    ......
</resultMap>
 
Zarar
 
----- Original Message -----
Sent: Wednesday, January 04, 2006 5:44 PM
Subject: sql joins in ibatis

Hi
I am new to iBATIS. I was able to run the person example in the ibatis website.
For one table, the example says,
<select id="getPerson" resultClass="com.comp.app.batchProcess.Person">
          SELECT
               PER_ID as id,
               PER_FIRST_NAME as firstName,
               PER_LAST_NAME as lastName,
               PER_BIRTH_DATE as birthDate,
               PER_WEIGHT_KG as weightInKilograms,
               PER_HEIGHT_M as heightInMeters
          FROM PERSON
          WHERE PER_ID=#value#
     </select>
but if i want details from two tables, say person and dept table. I have two bean classes person.java and dept.java
and if i want to select like,
select per_id as id, per_first_name as firstname, dept_name as deptname from person,dept where dept_no = 2
now  resultClass="com.comp.app.batchProcess.Person" and  "com.comp.app.batchProcess.Dept"
how to get around this. Any help is greatly appreciated.
Thanks
 

Yahoo! DSL Something to write home about. Just $16.99/mo. or less


Yahoo! Photos
Ring in the New Year with Photo Calendars. Add photos, events, holidays, whatever.

Reply via email to