Вывод хранимой процедуры в пользовательский объект Java с использованием Spring boot и JPA - PullRequest
0 голосов
/ 30 апреля 2019

Я создал хранимую процедуру для получения данных из базы данных и преобразования ответа в Java Object. У меня проблема, когда я пытаюсь поймать ответ в пользовательском объекте (ПРИМЕЧАНИЕ: пример, который я привел, предназначен только для тестирования. Я знаю, что есть простой способ выполнить операцию, которую я пытаюсь сделать здесь. Но это только для объяснения)

Хранимая процедура:

CREATE PROCEDURE [dbo].[getVersionByName] @name nvarchar(50)
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
    -- Insert statements for procedure here
    SELECT * FROM [version] where [name] = @name
END

Версия Entity:

@Entity
@NoArgsConstructor
@Data
@NamedStoredProcedureQuery(name = "Version.getVersionListedName"
                , procedureName = "getVersionByName"
                , parameters = {
                    @StoredProcedureParameter(mode = ParameterMode.IN,name = "name", type = String.class)})
public class Version {
    @Id
    private Long id;
    private String name;
}

Репозиторий:

public interface VersionRepositoryExtended extends CrudRepository<Version, Long> {

    @Procedure(procedureName = "getVersionByName")
    public Version getVersionListedName(@Param("name") String name);
}

Вопрос: Если вы видите мою хранимую процедуру, есть оператор SELECT * ---. Я пытаюсь захватить этот вывод в мой код Java в качестве возвращаемого значения. Как я могу это сделать?

UPDATE

Когда я пытаюсь скомпилировать код, я получаю следующую ошибку: org.springframework.data.mapping.PropertyReferenceException: не найдено свойство getVersionListedName для типа Версия!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...