Я создал хранимую процедуру для получения данных из базы данных и преобразования ответа в 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 для типа Версия!