Oh, I got it. There are no special Cayenne shortcuts for this. So you'll have to use your own conventions (AiSystemPromptSummarization.class.getSimpleName(), or define possible constants in a custom enum).
Andrus > On Apr 7, 2026, at 8:27 AM, Robert A. Decker <[email protected]> wrote: > > In my query I'm using a hardcoded string but if I change the qualifier in the > cayenne modeler to, for example, use a different column or change the string > in the qualifier it won't match the query. > > So, I should use the actual qualifier from the modeler but I don't see the > qualifier in the class variables. Does it only live in the modeler? > > Basically I just don't want to use a string that I have in my code. I could > use something like just the class name of the class but that may not match > the qualifier. > > Rob > > Sent from my iPhone > >> On Apr 7, 2026, at 14:04, Andrus Adamchik <[email protected]> wrote: >> >> Hi Rob, >> >> In your example, both the entity qualifier and the condition in "where" seem >> the same. So you wouldn't need the latter if you have the former. Am I >> misreading the description? >> >> Andrus >> >>> On Apr 7, 2026, at 7:48 AM, Robert A. Decker <[email protected]> wrote: >>> >>> I'm using single-table inheritance with the 'type' column determining the >>> subclass with a Qualifier in the model: >>> AiSystemPrompt (abstract) >>> AiSystemPromptSummarization (Qualifier type='AiSystemPromptSummarization') >>> >>> This query works: >>> >>> List<AiJob> jobs = ObjectSelect.query(AiJob.class) >>> .where(AiJob.AI_SYSTEM_PROMPT.dot(AiSystemPrompt.TYPE).eq("AiSystemPromptSummarization")) >>> .select(context); >>> >>> But I don't like that I'm hardcoding the subclass >>> ("AiSystemPromptSummarization") and searching against the TYPE property. >>> >>> Is there a way to do this using the attributes I have in the cayenne model? >>> (abstract superclass with concrete subclass using the qualifier set in the >>> entity model) >>> >>> I looked at BaseProperty and a couple of others in >>> org.apache.cayenne.exp.property but don't see it.... >>> >>> Rob >>
