Repository navigation
feat: honor projection aliases and generate camel-case Java names - #26
Merged
omer-cengel merged 3 commits intoSep 24, 2026
Merged
Conversation
Repository and result types use upper camel case, and methods, record components, and parameters use lower camel case. SQL names are split at every non-letter-or-digit character, all-caps words such as ID are treated as ordinary words, digit-initial names gain a leading underscore, and a name with no letter or digit is rejected. Keyword suffixing, numeric disambiguation, and the same-method and case-only result-type rejections are unchanged, and row mapping stays positional.
omer-cengel
deleted the
feature/projection-aliases-and-camel-case-java-names
branch
September 24, 2026 19:25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Generated repositories now use conventional Java names and respect explicit projection aliases. Before this change, a
SELECTalias was accepted but ignored, and snake_case SQL names leaked into generated components and parameters (created_at). Names are now derived from their SQL spelling by one deterministic camel-case rule set, so generated APIs read like ordinary Java and aliased joins produce meaningful component names.Changes
author_admin→AuthorAdminRepository,get_author→GetAuthorResult).created_at→createdAt,HTTPStatus→httpStatus,GetHTTPStatus→getHTTPStatus).IDandURLare treated as ordinary words, and names that would start with a digit gain a leading_.Object-member avoidance, numeric disambiguation, and the rejection of same-method and case-only result-type collisions are unchanged. Row mapping stays positional, and JDBC binding order and executable SQL are unchanged.Scope and non-goals
RETURNINGaliases remain rejected.ORDER BY, reach the database as written.