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
>> 

Reply via email to