Na podstawie Spring Data Document documentation udostępniłem niestandardową implementację metody repozytorium. Nazwa niestandardowej metody odnosi się do nieruchomości, która nie istnieje w obiekcie domeny:Dane źródłowe MongoDB próbuje generować zapytania dla niestandardowych metod repozytorium.
@Document
public class User {
String username;
}
public interface UserRepositoryCustom {
public User findByNonExistentProperty(String arg);
}
public class UserRepositoryCustomImpl implements UserRepositoryCustom {
@Override
public User findByNonExistentProperty(String arg) {
return /*perform query*/;
}
}
public interface UserRepository
extends CrudRepository<?, ?>, UserRepositoryCustom {
public User findByUsername(String username);
}
Jednak być może ze względu na nazwę metody wybrałem (findByNonExistentPropertyName
), Wiosna danych próbuje zanalizować nazwę metody, i stwórz z niego zapytanie. Gdy nie można znaleźć nonExistentProperty
w User
, zgłoszony zostanie wyjątek.
Możliwe rozdzielczości:
- Czy popełniłem błąd w jaki sposób zapewnić realizację metody niestandardowej?
- Czy można polecić Spring, aby nie próbowała generować zapytania na podstawie nazwy tej metody?
- Czy muszę po prostu unikać używania jakichkolwiek prefiksów rozpoznawanych przez Spring Data?
- Żadne z powyższych.
Dziękujemy!
Nie jestem pewien, czy to jest rzeczywisty problem, czy nie, ale czy UserRepositoryCustomImpl nie powinien implementować UserRepositoryCustom? –
Tak, masz rację, i tak jest, właśnie tęskniłem za tym, kiedy pisałem pytanie. Dziękuję Ci! –