-
Notifications
You must be signed in to change notification settings - Fork 212
Prevent Non-Rendering Where Clauses by Default #515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
jeffgbutler
merged 25 commits into
mybatis:master
from
jeffgbutler:statement-configuration
Aug 25, 2022
Merged
Prevent Non-Rendering Where Clauses by Default #515
jeffgbutler
merged 25 commits into
mybatis:master
from
jeffgbutler:statement-configuration
Aug 25, 2022
Conversation
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
This solves a corner case for configuration when a where() method is called, but no criteria are added
The new statement configuration functionality is better and more flexible
This could cause an exception if no where clause is specified
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.
Potentially Breaking Change
Most of the conditions in a where clause support optionality - meaning they may or may not render based on their values at runtime. If all conditions drop out of a where clause, then the entire where clause may be dropped from rendered SQL. This presents a danger in that a statement may inadvertently impact all rows in a table (for example, all rows could be deleted).
Out of an abundance of caution, this PR changes the default behavior pf the library. If a where clause is coded in a statement, but the where clause doesn't render, the library will now throw a
NonRenderingWhereClauseException
. This default behavior can be overridden globally, or on each individual statement.If this new behavior is acceptable, then no code changes are required. If you would like to allow a statement to be rendered even if the where clause will be dropped, then you must either change the global configuration of the library, or change the configuration of the statement through the DSL. Configuration options are documented on the "Configuration of the Library" page.
This is related to #509