Пользовательский тип возврата (динамическая проекция) для метода сохранения Spring CrudRepository - PullRequest
0 голосов
/ 25 апреля 2019

Мне интересно, возможно ли определить пользовательский тип возврата для CrudRepository метода сохранения Spring, как в следующем примере для метода запроса поиска:

    <T> Optional<T> findById(Long id, Class<T> type);

В документации Я нашел только пример для динамических проекций с методами запросов.

Я пытался

    <T> T save(Foo entity, Class<T> type);

но я получаю следующую ошибку:

java.lang.IllegalArgumentException: Failed to create query for method public abstract java.lang.Object com.xyz.myproject.persistence.dao.FooDAO.save(com.xyz.myproject.persistence.model.Foo,java.lang.Class)! No property save found for type Foo!

Есть идеи, как заставить это работать?

1 Ответ

0 голосов
/ 28 апреля 2019

Я так не думаю, должно быть Foo save(Foo entity); или из документации

Example 30. Fragments overriding save(…)
interface CustomizedSave<T> {
  <S extends T> S save(S entity);
}

class CustomizedSaveImpl<T> implements CustomizedSave<T> {

  public <S extends T> S save(S entity) {
    // Your custom implementation
  }
}

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.custom-implementations

...