Go to file
Sam Brannen 7a329eba5b Do not retain partial column metadata in SimpleJdbcInsert
Prior to this commit, if an SQLException was thrown while retrieving
column metadata from the database, SimpleJdbcInsert would generate an
INSERT statement that was syntactically valid but missing columns,
which could lead to data silently missing in the database (for nullable
columns).

This commit fixes this by clearing all collected column metadata if an
SQLException is thrown while processing the metadata. The result is
that an InvalidDataAccessApiUsageException will be thrown later while
generating the INSERT statement. The exception message now contains an
additional hint to make use of SimpleJdbcInsert#usingColumns() in order
to ensure that all required columns are included in the generated
INSERT statement.

SimpleJdbcCall can also encounter an SQLException while retrieving
column metadata for a stored procedure/function, but an exception is
not thrown since a later invocation of the stored procedure/function
will likely fail anyway due to missing arguments. Consequently, this
commit only improves the warning level log message by including a hint
to make use of SimpleJdbcCall#addDeclaredParameter().

Closes gh-26486
2021-02-03 18:47:19 +01:00
.github Update link for reporting security issues 2021-01-26 21:39:29 +00:00
buildSrc Upgrade to Gradle Enterprise 3.2 2020-04-29 10:54:03 +02:00
ci Upgrade CI images to ubuntu:focal-20210119 2021-01-28 11:50:19 +01:00
framework-bom Remove BOM workaround 2020-04-28 15:14:02 +02:00
gradle Upgrade to Gradle 6.8.1 2021-01-24 12:48:35 +01:00
integration-tests Drop explicit zeroing at instantiation of Atomic* objects 2020-10-06 15:45:12 +02:00
spring-aop Fix grammar in Javadoc 2021-01-18 11:26:29 +01:00
spring-aspects Polishing 2020-11-16 17:42:22 +01:00
spring-beans Fix ConcurrentBeanFactoryBenchmark 2021-01-12 10:59:57 +01:00
spring-context Polish Javadoc for ResourceLoader APIs 2021-01-26 12:20:28 +01:00
spring-context-indexer Polish contribution 2020-07-22 14:06:29 +02:00
spring-context-support Requalify tests as LONG_RUNNING 2020-09-25 13:43:38 +02:00
spring-core Link to Objenesis property name constant in SpringProperties 2021-02-02 17:42:45 +01:00
spring-expression Fix checkstyle violation 2021-02-03 12:12:52 +00:00
spring-instrument Delete obsolete log4j config 2020-03-18 17:01:01 +01:00
spring-jcl Polishing 2020-01-28 21:56:35 +01:00
spring-jdbc Do not retain partial column metadata in SimpleJdbcInsert 2021-02-03 18:47:19 +01:00
spring-jms Compatibility with Jackson 2.12 (tested against 2.12.0-rc1) 2020-10-13 11:04:55 +02:00
spring-messaging Polish Javadoc for base ExceptionHandlerMethodResolvers 2021-01-11 12:58:19 +01:00
spring-orm Early log entry for async EntityManagerFactory initialization failure 2020-11-13 17:52:51 +01:00
spring-oxm Merge branch '5.2.x' 2020-08-30 12:18:49 +02:00
spring-r2dbc Improve URI/query strings sanitization 2020-11-04 16:28:51 +01:00
spring-test Remove obsolete code in HeaderValueHolder 2021-02-02 11:28:32 +01:00
spring-tx Polish Javadoc for TransactionSynchronizationUtils 2021-01-27 14:03:38 +01:00
spring-web Protobuf Codec supports application/vnd.google.protobuf 2021-02-02 16:55:10 +00:00
spring-webflux Fix checkstyle violations 2021-02-03 12:24:45 +00:00
spring-webmvc Fix checkstyle violations 2021-02-03 12:24:45 +00:00
spring-websocket WebSocketExtension#equals matches sub-classes too 2021-01-27 20:39:44 +00:00
src Use api-spring-framework attribute for links to SpringProperties 2021-02-02 14:01:51 +01:00
.editorconfig Add EditorConfig 2017-06-12 08:07:54 +02:00
.gitattributes Ensure line endings for binary files are not modified in Git 2019-10-18 11:56:18 +02:00
.gitignore Rename non-Framework project modules 2019-08-21 14:32:25 +02:00
.mailmap Change gopivotal.com to pivotal.io 2014-10-05 18:12:50 +02:00
CODE_OF_CONDUCT.adoc URL Cleanup 2019-03-21 15:08:55 -05:00
CONTRIBUTING.md Update StackOverflow link 2020-04-20 12:32:11 +01:00
LICENSE.txt Add LICENSE.txt file 2019-08-20 22:01:12 +02:00
README.md Add Revved up by Gradle Enterprise badge to Readme 2021-01-11 09:40:00 +01:00
SECURITY.md Create SECURITY.md 2019-05-23 11:36:52 -04:00
build.gradle Upgrade to Jetty 9.4.36, EclipseLink 2.7.8, XStream 1.4.15, Apache Johnzon 1.2.10 2021-01-25 17:02:27 +01:00
gradle.properties Next development version (v5.3.4-SNAPSHOT) 2021-01-12 06:34:25 +00:00
gradlew Upgrade to Gradle 6.6 2020-08-11 12:10:35 +02:00
gradlew.bat Upgrade to Gradle 6.6 2020-08-11 12:10:35 +02:00
import-into-eclipse.md Polishing regarding AJDT versions 2020-01-13 17:15:27 +01:00
import-into-idea.md URL Cleanup 2019-03-21 15:08:55 -05:00
settings.gradle Update Gradle Enterprise Plugin versions 2021-01-12 13:46:14 +01:00

README.md

Spring Framework Build Status Revved up by Gradle Enterprise

This is the home of the Spring Framework: the foundation for all Spring projects. Collectively the Spring Framework and the family of Spring projects are often referred to simply as "Spring".

Spring provides everything required beyond the Java programming language for creating enterprise applications for a wide range of scenarios and architectures. Please read the Overview section as reference for a more complete introduction.

Code of Conduct

This project is governed by the Spring Code of Conduct. By participating, you are expected to uphold this code of conduct. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.

Access to Binaries

For access to artifacts or a distribution zip, see the Spring Framework Artifacts wiki page.

Documentation

The Spring Framework maintains reference documentation (published and source), Github wiki pages, and an API reference. There are also guides and tutorials across Spring projects.

Micro-Benchmarks

See the Micro-Benchmarks Wiki page.

Build from Source

See the Build from Source Wiki page and the CONTRIBUTING.md file.

Stay in Touch

Follow @SpringCentral, @SpringFramework, and its team members on Twitter. In-depth articles can be found at The Spring Blog, and releases are announced via our news feed.

License

The Spring Framework is released under version 2.0 of the Apache License.