Hi,
I have generated a classic Dept-Emp ADF BC project. Since I need inheritance for my business logic, I created a new EO Manager which extends Employee. Attribute Job is the discriminator with a default value 'MANAGER'. The Employee VO uses polymorphic EOs. When I try to get the department of an employee in a method like Employee.getSal() the ClassCastException is thrown.
public Number getSal() {
DepartmentImpl d = (DepartmentImpl) getDepartment(); // Exception!
// process business logic
return aValue;
}
java.lang.ClassCastException: oracle.jbo.domain.Number
at oracle.jbo.server.RowFilterKey.<init>(RowFilterKey.java:47)
at oracle.jbo.server.ViewObjectImpl.buildRowFilter(ViewObjectImpl.java:4527)
at oracle.jbo.server.ViewRowSetImpl.getRowFilter(ViewRowSetImpl.java:419)
at oracle.jbo.server.ViewRowSetImpl.getRowFilter(ViewRowSetImpl.java:370)
at oracle.jbo.server.ViewRowSetImpl.ensureStorage(ViewRowSetImpl.java:4632)
at oracle.jbo.server.EntityRowSetImpl.<init>(EntityRowSetImpl.java:80)
at oracle.jbo.server.EntityImpl.createAssociationAccessorRS(EntityImpl.java:7610)
at oracle.jbo.server.AssociationDefImpl.get(AssociationDefImpl.java:329)
at oracle.jbo.server.AssociationDefImpl.get(AssociationDefImpl.java:274)
at oracle.jbo.server.EntityImpl.getAttributeInternal(EntityImpl.java:2144)
at com.trivadis.adf.inheritance.model.eo.EmployeeImpl.getDepartment(EmployeeImpl.java:186)
at com.trivadis.adf.inheritance.model.eo.EmployeeImpl.getSal(EmployeeImpl.java:103)
at com.trivadis.adf.inheritance.model.eo.EmployeeImpl.getAttrInvokeAccessor(EmployeeImpl.java:141)
at com.trivadis.adf.inheritance.model.eo.ManagerImpl.getAttrInvokeAccessor(ManagerImpl.java:76)
at oracle.jbo.server.EntityImpl.getAttribute(EntityImpl.java:784)
Is it a known bug? or not allowed to use associations with EO Inheritance? Something else?
Any hints are welcome!
Thanks,
Markus