Andrus, this is looking more and more like a bug. The exception that gets thrown is the Qualifier looks like : accountType = AcountType.HD_ACCOUNT
org.apache.cayenne.exp.ExpressionException: [v.4.0.B2 Sep 26 2017 10:05:06] Can't resolve path component: [AccountInfo.AccountType]. The problem seems to be that the qualifier which has AccountType.HD_ACOCUNT is being looked for as an attribute of the entity. I tired setting the qualifier to the string value of the Enum accountType = "HD_ACCOUNT" but that causes problems when Cayenne tries to insert the enum into the object. I think for now, I've changed the implementation so that there's an accountTypeStr, which is used as the qualifier, and a cover method that sts the enum. Tony On Wed, Oct 2, 2019 at 11:18 AM Andrus Adamchik <[email protected]> wrote: > > > > On Oct 1, 2019, at 11:23 PM, Tony Giaccone <[email protected]> wrote: > > > > I have two objects, that are based on the same table. I want to > differentiate them by using a qualifier. > > > > I'm using a qualifer that looks like accountType = AccountType.hdaccount > > > > where hdaccount is one of the enumerated values. > > > > When i create an object of this type, the field is set to null. Is that > typical? Do I have to explicitly set it myself, if so what happens if I set > it to the wrong value? > > At least with numeric qualifier values, Cayenne injects qualifier values > based on the object type right inside "context.newObject(..)". I am looking > at the unit tests now. We have this functionality and it is working. > > Not sure we've tested this with enums though. Could be a bug, as the > expectation is that it should work with all kinds of constants. > > Andrus
