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?

Reply via email to