Hi,
there is strange behavior on 1:1 Relations where the target-table has only a
small amount of data.
In this cases I can see in the logfile, that there is no select for data at
all.
I found a workaround ... I do an explizit select ... this works
but the relation always brings hollow object
perhaps it brings a little more understandin of the problem:
One more thing: I turn caching off, because there is
more Software on the System that works with this data.
The Code Sniplet:
I overwrite the readProperty from CayenneDataObject
in my derived Class named MwareBusinessObject
the 'expressionForRelation' is a helper working on base og the
Cayenne-Configuration
public Object readProperty(String propName) {
Object result = null;
try {
result = super.readProperty(propName);
...
if (result != null) {
...
} else if (result instanceof MwareBusinessObject) {
/*
*..ORKAROUND
*/
MwareBusinessObject bobj = (MwareBusinessObject) result;
if (bobj.getPersistenceState() ==
PersistenceState.HOLLOW) {
Expression ex =
CayenneUtils.expressionForRelation(this, propName);
SelectQuery query = new
SelectQuery(result.getClass(), ex);
List tmp = getDataContext().performQuery(query);
if (tmp.size() == 1) {
result = tmp.get(0);
}
}
}
}
} catch (Exception e) {
...
My Cayenne-Version is 2.0.4
Sorry for not having tested the Problem with Version 3
-Juergen-
This archive was generated by hypermail 2.0.0 : Thu May 28 2009 - 10:17:34 EDT