Deletion does not work; skips silently

From: Nishant Neeraj (nneeraj12..ahoo.com)
Date: Sun Feb 14 2010 - 15:46:04 EST

  • Next message: Andrey Razumovsky: "Re: Rolling back vs deleteobject"

    Hi,

    I have a problem in deletion. When I try to fetch a list and delete a data from the list (and commitChanges) in separate methods it does not work, while the DataContext used is the same. There is no query-log or exception for the case when not deleted.

    See the code below. Line 4 and 27 prints same HashCode. Line 18 deletes the code successfully, while line 28 does not. Given that proDetails at line 24 is same as positions.get(2) of line 18.

    [code]
    00000001 public List<ProfessionalDetails> getPositions(Users user){
    00000002 ��� ���
    00000003 ��� ��� DataContext dc = getDataContext();
    00000004 ��� ��� System.out.println("Data Context 1 >> " + dc.hashCode());
    00000005 ��� ���
    00000006 ��� ��� List<ProfessionalDetails> positions = null;
    00000007 ��� ��� Expression exp = Expression.fromString("user = $user and proDetailType = $proType");
    00000008 ��� ��� HashMap hm = new HashMap();
    00000009 ��� ��� hm.put("user", user);
    00000010 ��� ��� hm.put("proType", ProfessionalDetails.PRO_DETAIL_TYPE_POSITION);
    00000011 ��� ��� SelectQuery query = new SelectQuery(ProfessionalDetails.class, exp.expWithParameters(hm));
    00000012 ��� ��� positions = dc.performQuery(query);
    00000013 ��� ��� List<Ordering> orderings = new ArrayList<Ordering>();
    00000014 ��� ��� orderings.add(new Ordering("toDate",SortOrder.DESCENDING));
    00000015 ��� ��� orderings.add(new Ordering("fromDate", SortOrder.DESCENDING));
    00000016 ��� ��� Ordering.orderList(positions, orderings);
    00000017 ��� ��� dc.commitChanges();
    00000018 ��� ��� //dc.deleteObject(positions.get(2));
    00000019 ��� ��� dc.commitChanges();
    00000020 ��� ���
    00000021 ��� ��� return positions;
    00000022 ��� }
    00000023
    00000024 ��� public void delete(ProfessionalDetails proDetails) {
    00000025 ��� ���
    00000026 ��� ��� DataContext dc = getDataContext();
    00000027 ��� ��� System.out.println("Data Context 2 >> " + dc.hashCode());
    00000028 ��� ��� dc.deleteObject(proDetails);
    00000029 ��� ��� dc.commitChanges();
    00000030 ��� }

    [/code]

    Thanks
    Nishant



    This archive was generated by hypermail 2.0.0 : Sun Feb 14 2010 - 15:46:41 EST