awslabs / awslabs/rds-data-api-client-library-java
Collection of DTOs as input parameters
- Dominant language
- Java
- Stars
- 21
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
Hi Team,
The library supports var args to pass multiple objects:
```
var account1 = new Account(1, "John");
var account2 = new Account(2, "Mary");
client.forSql("INSERT INTO accounts(accountId, name) VALUES(:accountId, :name)")
.withParamSets(account1, account2)
.execute();
```
If we need to pass Collection we have to call toArray():
```
List accounts = List.of(new Account(1, "John"), new Account(2, "Mary")....);
client.forSql("INSERT INTO accounts(accountId, name) VALUES(:accountId, :name)")
.withParamSets(accounts.toArray())
.execute();
```
Batch saving quite often is used with a list of objects and it would help to avoid extra call toArray().
Could you please add overloaded withParamSets method or a new method to pass java.util.Collection, for instance:
```
List accounts = List.of(new Account(1, "John"), new Account(2, "Mary")....);
client.forSql("INSERT INTO accounts(accountId, name) VALUES(:accountId, :name)")
.withParamCollection(accounts)
.execute();
```
Thank you.
Contributor guide
Research direction
Start by locating the withParamSets entry point and its existing varargs handling. Review its callers and tests, then support java.util.Collection input while preserving the current varargs behavior; done means a collection can be passed directly for batch execution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- database
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100