Llamar a procedimiento almacenado desde Java / JPA

Estoy escribiendo una aplicación web simple para llamar a un procedimiento almacenado y recuperar algunos datos. Es una aplicación muy simple, que interactúa con la base de datos del cliente. Pasamos la identificación del empleado y la identificación de la empresa y el procedimiento almacenado devolverá los detalles del empleado.

La aplicación web no puede actualizar / eliminar datos y está utilizando SQL Server.

Estoy desplegando mi aplicación web en Jboss AS. ¿Debo usar JPA para acceder al procedimiento almacenado oCallableStatement. Cualquier ventaja de usar JPA en este caso.

También cuál será la instrucción sql para llamar a este procedimiento almacenado. Nunca he usado procedimientos almacenados antes y estoy luchando con este. Google no fue de mucha ayuda.

Aquí está el procedimiento almacenado:

CREATE procedure getEmployeeDetails (@employeeId int, @companyId int)
as
begin
    select firstName, 
           lastName, 
           gender, 
           address
      from employee et
     where et.employeeId = @employeeId
       and et.companyId = @companyId
end

Actualizar:

Para cualquier otra persona que tenga problemas para llamar al procedimiento almacenado usandoJPA.

Query query = em.createNativeQuery("{call getEmployeeDetails(?,?)}",
                                   EmployeeDetails.class)           
                                   .setParameter(1, employeeId)
                                   .setParameter(2, companyId);

List<EmployeeDetails> result = query.getResultList();

Cosas que he notado:

Los nombres de los parámetros no me funcionaron, así que intente usar el índice de parámetros.Correcta instrucción SQL{call sp_name(?,?)}&nbsp;en lugar decall sp_name(?,?)Si el procedimiento almacenado devuelve un conjunto de resultados, incluso si sabe con solo una fila,getSingleResult&nbsp;no funcionaPasar unresultSetMapping&nbsp;nombre o detalles de la clase de resultado