Я пишу простое веб-приложение для вызова хранимой процедуры и получения некоторых данных. Это очень простое приложение, которое взаимодействует с клиентской базой данных. Мы передаем идентификатор сотрудника и идентификатор компании, а хранимая процедура возвращает данные о сотрудниках.
Веб-приложение не может обновлять/удалять данные и использует SQL Server.
Я развертываю свое веб-приложение в Jboss AS. Должен ли я использовать JPA для доступа к хранимой процедуре или CallableStatement. Любое преимущество использования JPA в этом случае.
Также будет выражение sql для вызова этой хранимой процедуры. Я никогда раньше не использовал хранимые процедуры, и я борюсь с этим. Google не очень помог.
Вот хранимая процедура:
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
Update:
Для всех, у кого есть проблема, вызов хранимой процедуры с использованием JPA.
Query query = em.createNativeQuery("{call getEmployeeDetails(?,?)}",
                                   EmployeeDetails.class)           
                                   .setParameter(1, employeeId)
                                   .setParameter(2, companyId);
List<EmployeeDetails> result = query.getResultList();
Что я заметил:
- Имена параметров для меня не работали, поэтому попробуйте использовать параметр index.
 -  Корректный оператор sql 
{call sp_name(?,?)}вместоcall sp_name(?,?) -  Если хранимая процедура возвращает набор результатов, даже если вы знаете только одну строку, 
getSingleResultне работает -  Передайте 
resultSetMappingимя или результирующий класс.