I have a query factory that takes a column name as an attribute in order to search for that column. Right now I’m passing the name of the column as a string, so it’s kind of hardcoded. If the name of the column changes in the entity’s annotation, that “hidden dependency” breaks up.
Is there a way in jpa to retrieve the real name of the column and have it available at compile time, so I can use it in queries?
Of course, there is always reflection on annotations. Suppose you have typical JPA column definition:
Then having getter method inspected yields column name value (example adopted from here):
The example assumes method property access in JPA entity but nothing prevents you to adopt it to field level by applying reflection to a field.