You want to get the contents. It seems easy, right?
Well, you just need to actually ask Hibernate to turn it into a String for you in one easy step, using
org.hibernate.type.MaterializedClobType
:PROCEDURE that_one_procedure( P_ARG1 IN VARCHAR2, P_ARG2 IN VARCHAR2, P_ARG3 IN VARCHAR2, X_SOME_OUTPUT OUT NOCOPY CLOB );
// Excerpt of an Entity class... import org.hibernate.type.MaterializedClobType; @NamedStoredProcedureQuery(name = "querySomeProcedure", procedureName = "MY_PACKAGE.THAT_ONE_PROCEDURE", parameters = { @StoredProcedureParameter(name = "P_ARG1", type = String.class), @StoredProcedureParameter(name = "P_ARG2", type = String.class), @StoredProcedureParameter(name = "P_ARG3", type = String.class), @StoredProcedureParameter(name = "X_SOME_OUTPUT", mode = ParameterMode.OUT, type = MaterializedClobType.class) /* <-- !!! */
Now my Repository can look like this:
// Excerpt of a Repository... @Procedure(name = "querySomeProcedure", outputParameterName = "X_SOME_OUTPUT") String querySomeProcedure(@Param("P_ARG1") String someArg, @Param("P_ARG2") String thatAnotherArg, @Param("P_ARG3") String alsoAnArg);
See, all the magic is done by Hibernate.
No comments :
Post a Comment