Chamando o procedimento armazenado do Java / JPA

Estou escrevendo um aplicativo Web simples para chamar um procedimento armazenado e recuperar alguns dados. É uma aplicação muito simples, que interage com o banco de dados do cliente. Passamos a identificação do funcionário e a empresa e o procedimento armazenado retornará os detalhes do funcionário.

O aplicativo da Web não pode atualizar / excluir dados e está usando o SQL Server.

Estou implantando meu aplicativo Web no Jboss AS. Devo usar o JPA para acessar o procedimento armazenado ouCallableStatement. Qualquer vantagem de usar JPA neste caso.

Além disso, qual será a instrução sql para chamar esse procedimento armazenado. Eu nunca usei procedimentos armazenados antes e estou lutando com este. O Google não ajudou muito.

Aqui está o procedimento armazenado:

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

Atualizar:

Para qualquer outra pessoa que tenha problemas ao chamar o procedimento armazenado usandoJPA.

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

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

Coisas que notei:

Os nomes dos parâmetros não funcionaram para mim, então tente usar o índice de parâmetros.Instrução sql correta{call sp_name(?,?)} ao invés decall sp_name(?,?)Se o procedimento armazenado estiver retornando um conjunto de resultados, mesmo se você souber apenas com uma linha,getSingleResult não vai funcionarPasse umresultSetMapping detalhes de nome ou classe de resultado

questionAnswers(0)

yourAnswerToTheQuestion