Вызов хранимой процедуры из Java / JPA

Я пишу простое веб-приложение для вызова хранимой процедуры и получения некоторых данных. Это очень простое приложение, которое взаимодействует с базой данных клиента. Мы передаем идентификатор сотрудника и идентификатор компании, и хранимая процедура возвращает данные сотрудника.

Веб-приложение не может обновлять / удалять данные и использует SQL Server.

Я развертываю свое веб-приложение в Jboss AS. Должен ли я использовать JPA для доступа к хранимой процедуре илиCallableStatement, Любое преимущество использования JPA в этом случае.

Также, что будет оператором sql для вызова этой хранимой процедуры. Я никогда не использовал хранимые процедуры раньше, и я борюсь с этим. Гугл не сильно помог.

Вот хранимая процедура:

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

Обновить:

Для тех, у кого есть проблемы с вызовом хранимой процедуры с помощьюJPA.

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

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

Вещи, которые я заметил:

Имена параметров у меня не работают, поэтому попробуйте использовать индекс параметра.Правильное заявление SQL{call sp_name(?,?)} вместоcall sp_name(?,?)Если хранимая процедура возвращает набор результатов, даже если вы знаете только с одной строкой,getSingleResult не будет работатьПройтиresultSetMapping детали имени или класса результата

Ответы на вопрос(18)

Ваш ответ на вопрос