From what I was able to find now it seems like it is related to
CAY-1729. I'm not sure how it used to work before but now for us the
problem is that we have id property declared in super entity and
inherited by sub entities. Now this property is present in every sub
entity descriptor's declaredProperties list which itself looks like it
is meant to accumulate only NEW UNIQUE properties declared in sub
entities and not present in parent. This in turn leads to id column
descriptor type of super entity always being reset to VOID by following
code inside SelectTranslator and therefore field always containing null
value.
private void appendColumn(.......... {
if (skipSet.add(new ColumnTracker(alias, attribute))) {
..... add new column descriptor.......
}
else if (objAttribute != null) {
.............
for (ColumnDescriptor column : columns) {
if (attribute.getName().equals(column.getName())) {
........
if (original != null) {
if (attributeOverrides == null) {
attributeOverrides = new
HashMap<ObjAttribute, ColumnDescriptor>();
}
attributeOverrides.put(original, column);
column.setJavaClass(Void.TYPE.getName());
}
..............
}
}
}
}
ELSE part is executed if the attribute is already present: the case we
get with id props coming again from sub entities.
Not sure if my rough investigation is helpful in some way but probably
might be a place to start with.
Dima
On 02/15/2013 01:29 PM, Andrus Adamchik wrote:
Dima, do you have the details of the problem to post on this list?