These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 
Author Message
 Post subject: problems with composite id
PostPosted: Wed Jan 24, 2007 6:01 am 
Newbie

Joined: Wed Jan 24, 2007 2:20 am
Posts: 1
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;
}

}


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jan 24, 2007 7:15 am 
Newbie

Joined: Sun Jan 21, 2007 10:56 pm
Posts: 14
in your first mapping file, put a <generator/> inside <id/>, the default for generaor is "assigned"


hth,

pali


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
cron
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.