Hello Micheal,
What is the complicated query, and what is the SQL that gets generated
in the simple and complicated cases?
I don't see any settings that might cause this, so you may want to file
a bug with a test case so someone can step through it.
Best Regards,
Chris
On 26/11/2010 8:23 AM, Michael Simons wrote:
Hello Tom,
I tried just Location with Location.address and Location.proposedAddress. The result is ok, i.e., there's no wrong mapping.
So my guess was wrong, it must be caused by the complicated query.
Is the given information enough for you to start any investigation, or do you need more information?
Kind Regards, Michael
-----Ursprüngliche Nachricht-----
Von: eclipselink-users-bounces@xxxxxxxxxxx [mailto:eclipselink-users-bounces@xxxxxxxxxxx] Im Auftrag von Michael Simons
Gesendet: Freitag, 26. November 2010 11:32
An: EclipseLink User Discussions
Cc: Elke Hopp
Betreff: Re: [eclipselink-users] Potential Bug in 2.1.1: values are written to wrong attributes
Hi Tom,
sorry for the delay - I had problems with my mailer.
The two classes and the persistence xml are attached.
Here's the code snippet that we're using. In the comment you see the clause that EL does not handle correctly:
/**
* Retrieve unplanned orders.
* @param root -
*/
private void retrieveOrders (ISentinel root) {
OrderManager omgr = managerFactory.getOrderManager(em, parent);
TypedQuery<CustomerOrder> query = omgr.createCustomerOrderQuery (false, false, null, false, null);
query.setHint(QueryHints.LEFT_FETCH, "o.schedule");
query.setHint(QueryHints.LEFT_FETCH, "o.schedule.entries");
query.setHint(QueryHints.FETCH, "o.deliveryAddress");
query.setHint(QueryHints.FETCH, "o.deliveryAddress.location");
query.setHint(QueryHints.FETCH, "o.deliveryAddress.customer");
query.setHint(QueryHints.FETCH, "o.deliveryAddress.location.address");
// When we set the following hint, the attributes of address are not mapped correctly anymore.
// query.setHint(QueryHints.LEFT_FETCH, "o.deliveryAddress.location.proposedAddress");
query.setHint(QueryHints.LEFT_FETCH, "o.claim");
query.setHint(QueryHints.LEFT_FETCH, "o.positions");
for (CustomerOrder order : query.getResultList ()) {
if (checkDomain(order) && (!parent.isOrdersInTime () || timefilter (order))) {
if(order.getDeliveryAddress() == null)
em.refresh(order);
root.addOrder (order);
}
}
}
I'll try to reproduce the failure in a less complicated query, because I guess the problem is that Location references Address two times. But maybe you're already able to detect the problem.
Kind Regards, Michael
-----Ursprüngliche Nachricht-----
Von: Tom Ware [mailto:tom.ware@xxxxxxxxxx]
Gesendet: Freitag, 19. November 2010 17:17
An: EclipseLink User Discussions
Cc: Michael Simons; Elke Hopp
Betreff: Re: [eclipselink-users] Potential Bug in 2.1.1: values are written to wrong attributes
Michael,
Can you please post all the information related to how these items are mapped? (classes with annotations, relevant xml files)
Also, can you please post the code snippet you are using to read the objects.
-Tom
Michael Simons wrote:
Sorry for the mail without subject.
So, once again:
Hello,
EclipseLink does not load correctly classes like the following:
class Address {
.
}
class Location {
Private Address address;
Private Address proposedAddress;
.
}
When instances of Location are queried from the database, the query is
correct, but the values of some fields of Location.address are mapped
into fields of Location.proposedAddress.
At the moment we are already discussing to replace EL because of this
weird behavior.
Can anyone help me with this urgent issue, please?
Is this a known bug, already?
Kind Regards,
Michael Simons
OPTITOOL GmbH
Bruderwöhrdstrasse 15b
93055 Regensburg
www.optitool.de <http://www.optitool.de>
*Von:* Michael Simons
*Gesendet:* Freitag, 19. November 2010 17:14
*An:* 'eclipselink-users@xxxxxxxxxxx'
*Cc:* Elke Hopp
*Betreff:*
Hello,
EclipseLink does not correctly load classes like the following:
class Address {
.
}
class Location {
Private Address address;
Private Address proposedAddress;
.
}
When instances of Location are queried from the database, the query is
correct, but the values of some fields of Location.address are mapped
into fields of Location.proposedAddress.
At the moment we are already discussing to replace EL because of this
weird behavior.
Can anyone help me with this urgent issue, please?
Is this a known bug, already?
Kind Regards,
Michael Simons
OPTITOOL GmbH
Bruderwöhrdstrasse 15b
93055 Regensburg
----------------------------------------------------------------------
--
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
|