I am working on POC in that I am getting Json data as return from Postgres function I want to map that data to java object.I am using hibernate type-52 vlad michea I had gone through his blog but there are example with entity . how can I convert Json data to Java model.I am able to get the data by registring the custom dialect with JsonNodeBinayType.But I want to get in List .do i need to custom object mapper implementation?
This is my Model class.
public class CreateUserRequest {
private String username;
private List<String> authoritieses;
private UserPhoneNumber primaryPhoneNumber;
}
public class CreateUserResponse{
private CreateUserRequest user;
private String message;
}
This is My method to call Postgres function
public List<CreateUserResponse> createUsers(List<CreateUserRequest> createUserRequest ) {
StoredProcedureQuery query = (StoredProcedureQuery) this.entityManager.createStoredProcedureQuery("create_users")
.registerStoredProcedureParameter("create_user_request", CreateUserRequestHibernateType.class,
ParameterMode.IN)
.registerStoredProcedureParameter("created_user", String.class, ParameterMode.IN);
query.setParameter("create_user_request",
createUserRequest.toArray(new CreateUserRequest[createUserRequest.size()]));
query.setParameter("created_user", "'spring'");
// List<CreateUserResponse> response = (List<CreateUserResponse>) query.getSingleResult();
Object value =query.getSingleResult();
return null;
}
This is my function which return json
CREATE OR REPLACE FUNCTION "user".create_users
(create_user_request "user".create_user_request[],created_user character varying)
RETURNS json AS $$
DECLARE
response "user".create_user_response[];
BEGIN
---Perform Operation and return the create user response
RETURN to_json(response);
END
$$ LANGUAGE 'plpgsql';