-->
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.  [ 3 posts ] 
Author Message
 Post subject: Hibernate Issues update statement on criteria.list();
PostPosted: Thu Mar 19, 2009 4:50 am 
Newbie

Joined: Thu Mar 19, 2009 4:47 am
Posts: 8
Following is the code:

public List getDCList(String selectionCriteria, HttpServletRequest request)
{
Transaction tx = null;
List ar = new ArrayList();
String startDate = (String)request.getParameter("startDate");
String endDate = (String)request.getParameter("endDate");
String[] startDateArr = startDate.split("/");
String[] endDateArr = endDate.split("/");
ReportDC reportDC = null;
try {
Session session = InitSessionFactory.getInstance().getCurrentSession();
tx = session.beginTransaction();
System.out.println(startDate);
Criteria criteria
= session.createCriteria(ReportDC.class);
DateFormat format =
new SimpleDateFormat("dd-mm-yy");
java.util.Date startDate1 = new Date(Integer.parseInt(startDateArr[2])-1900,Integer.parseInt(startDateArr[0])-1,Integer.parseInt(startDateArr[1]));
//(Date)format.parse(startDateArr[2] + "-" + startDateArr[0] + "-" + startDateArr[1]);
System.out.println(startDate1);
java.util.Date endDate1 = new Date(Integer.parseInt(endDateArr[2])-1900,Integer.parseInt(endDateArr[0])-1,Integer.parseInt(endDateArr[1]));

//(Date)format.parse(endDateArr[2] + "-" + endDateArr[0] + "-" + endDateArr[1]);
criteria.add(Expression.between
("sap_order_date", new java.util.Date(startDate1.getTime()),
new java.util.Date(endDate1.getTime()))); //

HttpSession httpSession = request.getSession();
UserProfile userProfile = (UserProfile)httpSession.getAttribute("userProfile");
int userRole = userProfile.getRole_id();

String page = (String)request.getParameter("page");
int pageNum = Integer.parseInt(page);

if(GlobalConstants.tsmRoleId==userRole)
{
criteria.add(Expression.eq("depot",selectionCriteria));
}
if(GlobalConstants.plhRoleId==userRole)
{
criteria.add(Expression.eq("plant",selectionCriteria));
System.out.println("plantId : " + selectionCriteria);
String filterBy = (String)request.getParameter("filterBy");
System.out.println("filterBy : " + filterBy);

System.out.println("pageNum : " + pageNum);
if(filterBy.equals("transporter"))
{
String filterCriteria = (String)request.getParameter("filterCriteria");
System.out.println("filterCriteria : " + filterCriteria);
criteria.add(Expression.eq("transporter",filterCriteria));
}
if(filterBy.equals("CustSegment"))
{
String filterCriteria = (String)request.getParameter("filterCriteria");
criteria.add(Expression.eq("customerSegment",filterCriteria));
}
if(filterBy.equals("Depot"))
{
String filterCriteria = (String)request.getParameter("filterCriteria");
criteria.add(Expression.eq("depot",filterCriteria));
}
}


if(pageNum==0)
{
criteria.setFirstResult(0);
}else
{
criteria.setFirstResult(pageNum*50);
}

criteria.setMaxResults(50);
System.out.println("Before criteria.list");
List dcList = criteria.list();///Line where problem is there
System.out.println("After criteria.list");

Iterator itr = dcList.iterator();

while(itr.hasNext())
{
reportDC = (ReportDC)itr.next();
ar.add(reportDC);
}

} catch (HibernateException e) {
e.printStackTrace();

}catch (Exception e) {
e.printStackTrace();

}
return ar;
}

This is fired when i click on a button. Data is filled by database team. I do not fire any update statement in my entire application. Sometimes this code runs fine but on repeated clicks anytime some update statements are fired..


The stack trace for it is:
1St time
Before criteria.list
Hibernate: select * from ( select row_.*, rownum rownum_ from ( select this_.ORDER_ID as ORDER1_19_0_, this_.VEHICLENO as VEHICLENO19_0_, this_.TRANSPORTER as TRANSPOR3_19_0_, this_.ROUTE_ID as ROUTE4_19_0_, this_.PLANT as PLANT19_0_, this_.DEPOT as DEPOT19_0_, this_.CUSTOMERID as CUSTOMERID19_0_, this_.CUSTOMERSEGMENT as CUSTOMER8_19_0_, this_.PRODUCTGRADE as PRODUCTG9_19_0_, this_.COF_PROMISED_DATE as COF10_19_0_, this_.DELIVERY_DATE as DELIVERY11_19_0_, this_.CUSTOMER_REQUESTED_DATE as CUSTOMER12_19_0_, this_.COMPLIANCE_STATUS as COMPLIANCE13_19_0_, this_.DIFFERENCE as DIFFERENCE19_0_, this_.SAP_ORDER_DATE as SAP15_19_0_, this_.STATUS as STATUS19_0_ from REPORT_DC this_ where this_.SAP_ORDER_DATE between ? and ? and this_.PLANT=? ) row_ where rownum <= ?) where rownum_ > ?
After criteria.list

2nd Time:
Before criteria.list
Hibernate: select * from ( select row_.*, rownum rownum_ from ( select this_.ORDER_ID as ORDER1_19_0_, this_.VEHICLENO as VEHICLENO19_0_, this_.TRANSPORTER as TRANSPOR3_19_0_, this_.ROUTE_ID as ROUTE4_19_0_, this_.PLANT as PLANT19_0_, this_.DEPOT as DEPOT19_0_, this_.CUSTOMERID as CUSTOMERID19_0_, this_.CUSTOMERSEGMENT as CUSTOMER8_19_0_, this_.PRODUCTGRADE as PRODUCTG9_19_0_, this_.COF_PROMISED_DATE as COF10_19_0_, this_.DELIVERY_DATE as DELIVERY11_19_0_, this_.CUSTOMER_REQUESTED_DATE as CUSTOMER12_19_0_, this_.COMPLIANCE_STATUS as COMPLIANCE13_19_0_, this_.DIFFERENCE as DIFFERENCE19_0_, this_.SAP_ORDER_DATE as SAP15_19_0_, this_.STATUS as STATUS19_0_ from REPORT_DC this_ where this_.SAP_ORDER_DATE between ? and ? and this_.PLANT=? ) row_ where rownum <= ?) where rownum_ > ?
After criteria.list

3rd time:
Before criteria.list
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: update REPORT_DC set VEHICLENO=?, TRANSPORTER=?, ROUTE_ID=?, PLANT=?, DEPOT=?, CUSTOMERID=?, CUSTOMERSEGMENT=?, PRODUCTGRADE=?, COF_PROMISED_DATE=?, DELIVERY_DATE=?, CUSTOMER_REQUESTED_DATE=?, COMPLIANCE_STATUS=?, DIFFERENCE=?, SAP_ORDER_DATE=?, STATUS=? where ORDER_ID=?
Hibernate: select * from ( select row_.*, rownum rownum_ from ( select this_.ORDER_ID as ORDER1_19_0_, this_.VEHICLENO as VEHICLENO19_0_, this_.TRANSPORTER as TRANSPOR3_19_0_, this_.ROUTE_ID as ROUTE4_19_0_, this_.PLANT as PLANT19_0_, this_.DEPOT as DEPOT19_0_, this_.CUSTOMERID as CUSTOMERID19_0_, this_.CUSTOMERSEGMENT as CUSTOMER8_19_0_, this_.PRODUCTGRADE as PRODUCTG9_19_0_, this_.COF_PROMISED_DATE as COF10_19_0_, this_.DELIVERY_DATE as DELIVERY11_19_0_, this_.CUSTOMER_REQUESTED_DATE as CUSTOMER12_19_0_, this_.COMPLIANCE_STATUS as COMPLIANCE13_19_0_, this_.DIFFERENCE as DIFFERENCE19_0_, this_.SAP_ORDER_DATE as SAP15_19_0_, this_.STATUS as STATUS19_0_ from REPORT_DC this_ where this_.SAP_ORDER_DATE between ? and ? and this_.PLANT=? ) row_ where rownum <= ?) where rownum_ > ?
After criteria.list

I am completely clueless and even searched on net but could not find any solution. Please help me out

Thanks and Regards,
Vikash Anand.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Mar 19, 2009 5:59 pm 
Regular
Regular

Joined: Mon Jan 05, 2009 6:42 pm
Posts: 99
Location: IL
Hi,
the Hibernate SQL log does not necessarily mean it is from your "click" if two or more users "clicked" at the same time the log will show the transactions that have happened at that moment of time. You can configure log4j to show the parameters for the sql-statements by setting the
logLevel of org.hibernate.type to TRACE. That way you can compare the run time parameters that you are using and see the parameters values for the updates that are going on.

Hope this helps,
Latha.


Top
 Profile  
 
 Post subject: Re: Hibernate Issues update statement on criteria.list();
PostPosted: Wed Sep 30, 2009 3:46 am 
Newbie

Joined: Thu Mar 19, 2009 4:47 am
Posts: 8
I am testing above code in my system only and database is also at my individual machine. The stack trace reflects the trace when I click on UI for first time, second time and third time.

Whai is happening is that after repeated clicks the datatype of date is changed to timestamp


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 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:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.