-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Unable to reference collection parameter by its actual name when the first parameter is RowBounds or ResultHandler #2693
Comments
ParamNameResolver构造方法中解析方法参数名时,就已经判断了是否为特殊参数(RowBounds || ResultHandler),特殊参数不会放到names集合中. |
是这样的逻辑,但是我上面的例子中names中存的key - value 是 1 -> "nameList" , 在上面源码$1行里 names.get(0)是获取不到 |
pom文件maven-compiler-plugin -> configuration标签中,加上这个 https://github.com/mybatis/mybatis-3/releases/tag/mybatis-3.4.1 |
... when the first argument is a special one (i.e. `RowBounds` or `ResultHandler`). fixes mybatis#2693
Hello @liuzongliang0202 @619123555 , I don't fully understand the Chinese discussion, but the reported issue should be fixed in the latest 3.5.12-SNAPSHOT. |
* Update dependency org.javassist:javassist to v3.29.2-GA * Update dependency org.slf4j:slf4j-api to v2.0.1 * Update dependency org.apache.logging.log4j:log4j-api to v2.19.0 * Update dependency org.apache.logging.log4j:log4j-core to v2.19.0 * Update dependency ch.qos.logback:logback-classic to v1.4.1 * [pom] Update project build output timestamp for reproducible builds * [ci] Correct spelling mistake in proxy factory in better way to avoid naming conflict Alternative attempt to mybatis#2692 * [maven-release-plugin] prepare release mybatis-3.5.11 * [maven-release-plugin] prepare for next development iteration * Update dependency org.slf4j:slf4j-api to v2.0.2 * Update junit5 monorepo to v5.9.1 * Referencing collection parameter by name fails ... when the first argument is a special one (i.e. `RowBounds` or `ResultHandler`). fixes mybatis#2693 * Update dependency org.slf4j:slf4j-api to v2.0.3 * Update dependency org.testcontainers:junit-jupiter to v1.17.4 * Update dependency org.testcontainers:mysql to v1.17.4 * Update dependency org.testcontainers:postgresql to v1.17.4 * Fix a race condition caused by other threads calling mapper methods while mappedStatements are being constructed * Update dependency ch.qos.logback:logback-classic to v1.4.2 * Update dependency ch.qos.logback:logback-classic to v1.4.3 * Update dependency org.testcontainers:junit-jupiter to v1.17.5 * Update dependency org.testcontainers:mysql to v1.17.5 * Update dependency org.testcontainers:postgresql to v1.17.5 * Update dependency ch.qos.logback:logback-classic to v1.4.4 * Update dependency org.mockito:mockito-junit-jupiter to v4.8.1 * Update dependency mysql:mysql-connector-java to v8.0.31 * Update dependency org.mockito:mockito-core to v4.8.1 * Enable ability to provide custom configuration to XMLConfigBuilder Supported via the InputStream/Reader constructors Default constructors will keep using a new configuration * A subclassed configuration class can now be passed to allow XMLConfigBuilder to use a specific implementation when creating the configuration * Adding mapper could fail under JPMS Under JPMS, ClassLoader#getResources() throws `FileSystemException` it seems. It might be better to catch IOException, but it could swallow some exception that should be thrown. Should fix mybatis#2598 * Update mockito monorepo to v4.9.0 * Update dependency org.testcontainers:junit-jupiter to v1.17.6 * Update dependency org.testcontainers:mysql to v1.17.6 * Update dependency org.testcontainers:postgresql to v1.17.6 * Update dependency org.slf4j:slf4j-api to v2.0.4 * Update dependency ch.qos.logback:logback-classic to v1.4.5 * Minor correction: boolean can never be null * Added failing tests Some DBs support INSERT, UPDATE or DELETE statement that returns result set. PostgreSQL has RETURNING MS SQL Server has OUTPUT MyBatis can return results by using @select, @SelectProvider or <select />, however, rollback does not work as expected because SELECT does not mark the session 'dirty'. * Added 'affectData' attribute to SELECT statements To indicate the SELECT affects DB data. e.g. PostgreSQL's RETURNING, MS SQL Server's OUTPUT * Update dependency ch.qos.reload4j:reload4j to v1.2.23 * Bump postgresql from 42.5.0 to 42.5.1 Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.5.0 to 42.5.1. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](pgjdbc/pgjdbc@REL42.5.0...REL42.5.1) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:development ... Signed-off-by: dependabot[bot] <[email protected]> * Update dependency org.slf4j:slf4j-api to v2.0.5 * Documentation * selectCursor() should respect affectData as well * Update dependency ch.qos.reload4j:reload4j to v1.2.24 * Missing entry in es and ko doc [ci skip] * Awful typo [ci skip] * [pom] Update mysql-connector-j to new GAV relocation * [ci] Use charset with filewriter * [pom] Add filter to exclude MANIFEST.MF from uber jar from other jars (using ours) clears warning and behaviour is the same. * Update dependency org.slf4j:slf4j-api to v2.0.6 * Update mockito monorepo to v4.10.0 * Avoid false-negative * Update mockito monorepo to v4.11.0 * Update dependency org.mybatis:mybatis-parent to v37 * Resolve resultType by namespace and id when not provide resultType and resultMap * [actions] Drop jdk 18 * Minor refactoring, more tests * Update dependency org.assertj:assertj-core to v3.24.1 * Update junit5 monorepo to v5.9.2 * Update mockito monorepo to v5 * Update dependency org.assertj:assertj-core to v3.24.2 * Update dependency com.mysql:mysql-connector-j to v8.0.32 * Update dependency maven to v3.8.7 * Include JDK 21 (EA at this point) in CI build * [pom] Add mockito subclass support some of our tests need the legacy style support that mockito made available. We should look at those in longer term to get on fact that inline is now the default as per mockito we will likely have other issues. * Update mockito monorepo to v5.1.0 * Update mockito monorepo to v5.1.1 * Update dependency org.postgresql:postgresql to v42.5.2 * [ci] Type the array lists * Update dependency org.postgresql:postgresql to v42.5.3 * [ci] Sort imports * [ci] Run partial formatting * [ci] Update copyright dates * [ci] Remove extra /p as not required in the javadoc * [ci] formatting * [ci] Update copyright dates * [ci] formatting * [ci] Update copyright date * [ci] formatting * [ci] Formatting * [ci] formatting * [ci] formatting * [ci] formatting * [ci] formatting * [ci] Add note about formatting to readme * [ci] Try adjusting formatting on readme * [pom] For pre jdk 16 skip impsort * [ci] Fix readme for formatter tags * [mvn] Bump to maven 3.9.0 and change maven.config to 3.9/4.x style * Search readable property when resolving constructor arg type Should fix mybatis#2803 * Update test code to clarify the consequence * Update dependency org.postgresql:postgresql to v42.5.4 * Add Unit Test for PooledDataSource * Using cursor causes OOM mybatis#2812 * [ci] Minor formatting adjustments * [ci] Import sort new test class * [ci] Fix end of line markers at end of file per git standards (ie empty last line) * [ci] Apply open rewrite partially on java cleanup * [ci] Add private constructors to classes that cannot be instantiated (all static) * [test] Remove dumb test - not valid now as class is static and should not have been instantiated * [test] Remove invalid extension of class for testing * [ci] Tabs to spaces * [ci] Add final where appropriate per open rewrite relaxed some of its suggestions but generally took most. * [pom] Move surefire configuration to parent and make properties more readable * [pom] Update surefire property usage to non deprecated values * [ci] Adjust argument * [ci] Show active profiles being used * [actions] Drop usage of ci only tests group as unnecessary / directly set excludedGroups profile is not needed. All we are doing is setting a property. * [actions] Run all tests for ubuntu jdk 11 using arglines * [pom] Add comment on how to disable excluded groups runs * [pom] Add another comment around excluded groups * [ci] Add readme that describes how our testing works * [ci] Do not use star imports (across test classes) * [ci] Use diamond operators (test classes) squash with diamond * [ci] Add missing seial version uid at 1L (throughout tests) * [ci] Use mockito argument matchers instead of deprecated logic * [ci] Use 'L' instead of 'l' for long * [ci] Remove new of primative as known * [ci] Remove super as no super to call * [ci] More direct returns to save on GC * [ci] Various small items cleaning up assignments * [ci] Better parsing wrapper classes * [ci] Remove public from methods in interfaces * [ci] Formatting / update copyright dates * [ci] Add missing overrides * [ci] Various small cleanups * [ci] Use objects class for hash, equals usage * [ci] Cleanup if statement breaks / return logic * [ci] Remove unnecessary super calls * [ci] Make static classes 'static' * [ci] Remove unnecessary parentheses and allow quicker exit * [ci] Add missing serial version uid as 1L * [ci] Use diamond operator * [ci] Remove named wrapper of list as type given already * [ci] Remove unused variable from internal method * [ci] Smarter list creation * [ci] Update copyright dates * [ci] Add back type as not until jdk 9 can this be determined * Add resultOrdered="true" and change expected cursor's nestedResultObjects size to be less than 3 * Update dependency org.apache.logging.log4j:log4j-api to v2.20.0 * Update dependency org.apache.logging.log4j:log4j-core to v2.20.0 * Use CountDownLatch to coordinate the execution order * [pom] Add some comments in the pom for clarity * [pom] Remove compiler test compiler argument parameters as not needed now * [maven-release-plugin] prepare release mybatis-3.5.12 * [maven-release-plugin] prepare for next development iteration * [ci] Add release backup to gitignore * [fix] Change formatter around javadoc to retain L&F and correct javadoc error * [maven-release-plugin] prepare release mybatis-3.5.12 * [maven-release-plugin] prepare for next development iteration * fix Chinese translation error for `parameterType` --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Jeremy Landis <[email protected]> Co-authored-by: Iwao AVE! <[email protected]> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: tianshuang <[email protected]> Co-authored-by: Willie Scholtz <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: FlyInWind <[email protected]> Co-authored-by: hogimn <[email protected]> Co-authored-by: gallyamb <[email protected]> Co-authored-by: puppylpg <[email protected]>
org.apache.ibatis.reflection.ParamNameResolver#getNamedParams
code line $1 'names.get(0)' should be replaced by 'names.get(names.firstKey())' . because when 'paramCount == 1' names the only key is not necessarily 0,for example:
This test case 'names.size()==1' names contains key:1 --> value: "nameList"
The text was updated successfully, but these errors were encountered: