Skip to content

Commit 4148307

Browse files
committed
Add test for stored procedures accepting array types.
Closes #3081
1 parent a19da95 commit 4148307

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

spring-data-jpa/src/test/java/org/springframework/data/jpa/repository/procedures/PostgresStoredProcedureIntegrationTests.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,14 @@ void supportsMultipleOutParameters() {
159159
assertThat(results).containsKey("some_cursor");
160160
}
161161

162+
@Test // GH-3081
163+
void supportsArrayTypes() {
164+
165+
String result = repository.accept_array(new String[] { "one", "two" });
166+
167+
assertThat(result).isEqualTo("[1:2]");
168+
}
169+
162170
@Entity
163171
@NamedStoredProcedureQuery( //
164172
name = "get_employees_postgres", //
@@ -177,6 +185,11 @@ void supportsMultipleOutParameters() {
177185
@StoredProcedureParameter(mode = ParameterMode.REF_CURSOR, name = "some_cursor", type = void.class),
178186
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "result1", type = Integer.class),
179187
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "result2", type = Integer.class) })
188+
@NamedStoredProcedureQuery( //
189+
name = "Employee.accept_array", //
190+
procedureName = "accept_array", //
191+
parameters = { @StoredProcedureParameter(mode = ParameterMode.IN, name = "some_chars", type = String[].class),
192+
@StoredProcedureParameter(mode = ParameterMode.OUT, name = "dims", type = String.class) })
180193
@NamedStoredProcedureQuery( //
181194
name = "positional_inout", //
182195
procedureName = "positional_inout_parameter_issue3460", //
@@ -260,6 +273,9 @@ public interface EmployeeRepositoryWithRefCursor extends JpaRepository<Employee,
260273
@Procedure(value = "get_employees_count")
261274
Integer noResultSet();
262275

276+
@Procedure(value = "accept_array")
277+
String accept_array(String[] some_chars);
278+
263279
@Procedure(value = "multiple_out")
264280
Map<String, Object> multiple_out(int someNumber);
265281

spring-data-jpa/src/test/resources/scripts/postgres-stored-procedures.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,13 @@ BEGIN
6565
OPEN some_cursor FOR SELECT COUNT(*) FROM employee;
6666
END;
6767
$BODY$;;
68+
69+
CREATE OR REPLACE PROCEDURE accept_array(IN some_chars VARCHAR(255)[],
70+
OUT dims VARCHAR(255))
71+
LANGUAGE 'plpgsql'
72+
AS
73+
$BODY$
74+
BEGIN
75+
dims = array_dims(some_chars);
76+
END;
77+
$BODY$;;

0 commit comments

Comments
 (0)