|
Hi friends
In my applicatio i am using composite ids.In my parent class PrjDetails its generating id automatically.in child class MaterialRequisiton its not generatig automatically.
when i am trying to use it its giving error like this
Id should set manually
please help me.
<class name="com.iserviceglobe.pims.procurement.hibernate.MaterialRequisiton" table="materialRequisiton" catalog="pims">
<composite-id name="id" class="com.iserviceglobe.pims.procurement.hibernate.MaterialRequisitonId">
<key-property name="id" type="java.lang.Integer">
<column name="id" />
</key-property>
<key-many-to-one name="prjDetails" class="com.iserviceglobe.pims.procurement.hibernate.PrjDetails">
<column name="prjDetailsid" />
</key-many-to-one>
</composite-id>
<class name="com.iserviceglobe.pims.procurement.hibernate.PrjDetails" table="prjDetails" catalog="pims">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="increment" />
</id>
<property name="prjNo" type="java.lang.Integer">
<column name="prjNo" not-null="true" unique="true" />
</property>
<property name="prjName" type="java.lang.String">
<column name="prjName" not-null="true" unique="true" />
</property>
<set name="materialRequisitons" inverse="true">
<key>
<column name="prjDetailsid" not-null="true" unique="true" />
</key>
<one-to-many class="com.iserviceglobe.pims.procurement.hibernate.MaterialRequisiton" />
</set>
//java code is like this
private void testCreateDomains() {
Transaction tx = session.beginTransaction();
PrjDetails prjdetails=new PrjDetails(projectno,projectname);
MaterialRequisiton materialrequisiton=new MaterialRequisiton();
//********here i have to set id manully iw new Integer(0)*******
MaterialRequisitonId materialrequisitonid=new MaterialRequisitonId(new Integer(0),prjdetails);
materialrequisiton.setId(materialrequisitonid);
prjdetails.setPrjNo(projectno);
prjdetails.setPrjName(projectname);
materialrequisiton.setMrItemDescription(desc) ;
materialrequisiton.setMrItemSpec(materialspecification);
materialrequisiton.setMrItemSize(materialsize);
materialrequisiton.setMrItemQuantity(materialquantity);
materialrequisiton.setMrItemCode(code);
materialrequisiton.setMrItemRequired(dateDB);
materialrequisiton.setMrItemPlace(materialrequiredplace);
materialrequisiton.setMrApproval(approval);
materialrequisiton.setMrRemarks(materialremarks);
session.save(prjdetails);
session.save(materialrequisiton);
System.out.println(session);
tx.commit();
package com.iserviceglobe.pims.procurement.struts.action;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.iserviceglobe.pims.procurement.hibernate.HibernateSessionFactory;
import com.iserviceglobe.pims.procurement.hibernate.MaterialRequisiton;
import com.iserviceglobe.pims.procurement.hibernate.MaterialRequisitonId;
import com.iserviceglobe.pims.procurement.hibernate.PrjDetails;
import com.iserviceglobe.pims.procurement.struts.form.MaterialRequistionForm;
public class MaterialRequistionAction extends Action{
private Session session;
private String projectname;
private Double materialquantity;
private Integer projectno;
private String materialrequiredplace;
private String desc;
private String materialspecification;
private String date;
private Integer materialsize;
private String materialremarks;
private Integer code;
private Short approval;
private SimpleDateFormat dateFormat ;
private GregorianCalendar cal;
private java.sql.Date dateDB;
private Logger log;
public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response)
{
MaterialRequistionForm materialrequistionform=(MaterialRequistionForm)form;
//1.projectname
projectname=materialrequistionform.getProjectname();
System.out.println("1.projectname"+projectname);
//2.materialquantity
materialquantity=new Double(materialrequistionform.getMaterialquantity());
System.out.println("2.materialquantity"+materialquantity);
//3.projectno
projectno=new Integer(materialrequistionform.getProjectno());
System.out.println("3.projectno"+projectno);
//4.materialrequiredplace
materialrequiredplace=materialrequistionform.getMaterialrequiredplace();
System.out.println("4.materialrequiredplace"+materialrequiredplace);
//5.desc
desc=materialrequistionform.getDesc();
System.out.println("5.desc"+desc);
//6.materialspecification
materialspecification=materialrequistionform.getMaterialspecification();
System.out.println("6.materialspecification"+materialspecification);
//7.date
try
{
date=materialrequistionform.getDate();
dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date tempDate = dateFormat.parse(date);
cal = new GregorianCalendar();
cal.setTime(tempDate);
dateDB =
new java.sql.Date( cal.getTime().getTime() );
System.out.println("7.date"+dateDB);
}catch(Exception e)
{
e.printStackTrace();
}
//8.materialsize
materialsize=new Integer(materialrequistionform.getMaterialsize());
System.out.println("8.materialsize"+materialsize);
//9.materialremarks
materialremarks=materialrequistionform.getMaterialremarks();
System.out.println("9.materialremarks"+materialremarks);
//10.code
code=new Integer(materialrequistionform.getCode());
System.out.println("10.code"+code);
//11.approval
approval=new Short(materialrequistionform.getApproval());
System.out.println("11.approval"+approval);
try {
setUp();
testCreateDomains();
tearDown();
} catch (Exception e) {
e.printStackTrace();
}
return mapping.findForward("success");
}
private void testCreateDomains() {
Transaction tx = session.beginTransaction();
PrjDetails prjdetails=new PrjDetails(projectno,projectname);
MaterialRequisiton materialrequisiton=new MaterialRequisiton();
MaterialRequisitonId materialrequisitonid=new MaterialRequisitonId(new Integer(0),prjdetails);
materialrequisiton.setId(materialrequisitonid);
prjdetails.setPrjNo(projectno);
prjdetails.setPrjName(projectname);
materialrequisiton.setMrItemDescription(desc) ;
materialrequisiton.setMrItemSpec(materialspecification);
materialrequisiton.setMrItemSize(materialsize);
materialrequisiton.setMrItemQuantity(materialquantity);
materialrequisiton.setMrItemCode(code);
materialrequisiton.setMrItemRequired(dateDB);
materialrequisiton.setMrItemPlace(materialrequiredplace);
materialrequisiton.setMrApproval(approval);
materialrequisiton.setMrRemarks(materialremarks);
session.save(prjdetails);
session.save(materialrequisiton);
System.out.println(session);
tx.commit();
}
protected void setUp() throws Exception {
session = HibernateSessionFactory.getSession();
log = Logger.getLogger(this.getClass());
}
protected void tearDown() throws Exception {
HibernateSessionFactory.closeSession();
}
public Session getSession() {
return session;
}
/**
* @param session
* The session to set.
*/
public void setSession(Session session) {
this.session = session;
}
}
|