DATAJPA-1297 - Fixed usage of outputParameterName in @Procedure annotation.
Original pull request: #260.
This commit is contained in:
@@ -36,6 +36,7 @@ import org.springframework.util.StringUtils;
|
||||
* @author Oliver Gierke
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
* @author Diego Diez
|
||||
* @since 1.6
|
||||
*/
|
||||
enum StoredProcedureAttributeSource {
|
||||
@@ -70,7 +71,7 @@ enum StoredProcedureAttributeSource {
|
||||
+ method);
|
||||
}
|
||||
|
||||
return new StoredProcedureAttributes(procedureName, null, method.getReturnType(), false);
|
||||
return new StoredProcedureAttributes(procedureName, procedure.outputParameterName(), method.getReturnType(), false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -42,6 +42,7 @@ import org.springframework.util.ReflectionUtils;
|
||||
* @author Thomas Darimont
|
||||
* @author Oliver Gierke
|
||||
* @author Christoph Strobl
|
||||
* @author Diego Diez
|
||||
* @since 1.6
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
@@ -101,6 +102,17 @@ public class StoredProcedureAttributeSourceUnitTests {
|
||||
assertThat(attr.getOutputParameterType(), is(typeCompatibleWith(Integer.class)));
|
||||
assertThat(attr.getOutputParameterName(), is(StoredProcedureAttributes.SYNTHETIC_OUTPUT_PARAMETER_NAME));
|
||||
}
|
||||
|
||||
@Test // DATAJPA-1297
|
||||
public void shouldCreateStoredProcedureAttributesFromProcedureMethodWithExplictProcedureNameAliasAndOutputParameterName() {
|
||||
|
||||
StoredProcedureAttributes attr = creator
|
||||
.createFrom(method("explicitPlus1inoutViaProcedureNameAliasAndOutputParameterName", Integer.class), entityMetadata);
|
||||
|
||||
assertThat(attr.getProcedureName(), is("plus1inout"));
|
||||
assertThat(attr.getOutputParameterType(), is(typeCompatibleWith(Integer.class)));
|
||||
assertThat(attr.getOutputParameterName(), is("res"));
|
||||
}
|
||||
|
||||
@Test // DATAJPA-455
|
||||
public void shouldCreateStoredProcedureAttributesFromProcedureMethodBackedWithExplicitlyNamedProcedure() {
|
||||
@@ -166,12 +178,18 @@ public class StoredProcedureAttributeSourceUnitTests {
|
||||
@Procedure(procedureName = "plus1inout") // DATAJPA-455
|
||||
Integer explicitPlus1inoutViaProcedureNameAlias(Integer arg);
|
||||
|
||||
/**
|
||||
* Explicitly mapped to a procedure with name "plus1inout" in database via alias and explicityly named ouput parameter.
|
||||
*/
|
||||
@Procedure(procedureName = "plus1inout", outputParameterName = "res") // DATAJPA-1297
|
||||
Integer explicitPlus1inoutViaProcedureNameAliasAndOutputParameterName(Integer arg);
|
||||
|
||||
/**
|
||||
* Implicitly mapped to a procedure with name "plus1inout" in database via alias.
|
||||
*/
|
||||
@Procedure // DATAJPA-455
|
||||
Integer plus1inout(Integer arg);
|
||||
|
||||
|
||||
/**
|
||||
* Explicitly mapped to named stored procedure "User.plus1IO" in {@link EntityManager}.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user