2016-04-27 3 views
0

У меня есть хранимая процедура со следующей декларацией:Spring данные и хранимые процедуры

CREATE PROCEDURE GetAttributesForCategory(IN catId BIGINT(20)) 

В моем Spring загрузки -backed приложения есть объект:

@Entity 
@NamedStoredProcedureQueries({ 
     @NamedStoredProcedureQuery(
       name = "ProductAttribute.getAttributesForCategory", 
       procedureName = "GetAttributesForCategory", 
       parameters = { 
         @StoredProcedureParameter(name = "catId", 
                type = Long.class, 
                mode = ParameterMode.IN) 
       } 
     ) 
}) 
public class ProductAttribute { 
    ... 
} 

И хранилище корреспондента выглядит следующим образом:

public interface ProductAttributeReposirory extends JpaRepository<ProductAttribute, Long> { 

    @Procedure(name = "getAttributesForCategory") 
    List<ProductAttribute> getAttributesForCategory(@Param("catId") Long catId); 
} 

Все сделано в соответствии с t о this example, но исключение произошло во время весеннего контекста загрузки:

org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'productAttributeRepository': Invocation of init method failed; 
nested exception is org.springframework.data.mapping.PropertyReferenceException: 
No property getAttributesForCategory found for type ProductAttribute! 

Я не могу себе представить, что идет не так. Кто-нибудь может?

ответ

0

У меня была такая же проблема с этим, и решил ее путем добавления OUT @StoredProcedureParameter:

@StoredProcedureParameter(mode = ParameterMode.IN, name = "inVar", type = String.class), @StoredProcedureParameter(mode = ParameterMode.OUT, name = "outVar", type = ArrayList.class)

, хотя в данный момент я получаю другую ошибку «Индекс параметра 2 находится вне диапазона "

Смежные вопросы