In base allo Spring Data Document documentation, ho fornito un'implementazione personalizzata di un metodo di repository. Il nome del metodo personalizzato fa riferimento a una proprietà che non esiste nell'oggetto dominio:Spring Data MongoDB tenta di generare query per i metodi di repository personalizzati
@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);
}
Tuttavia, forse a causa del nome del metodo che ho scelto (findByNonExistentPropertyName
), Primavera dei dati tenta di analizzare il nome del metodo, e creare una query da esso. Quando non riesce a trovare nonExistentProperty
in User
, viene generata un'eccezione.
Possibili risoluzioni:
- ho fatto un errore nel modo in cui fornisco l'implementazione del metodo personalizzato?
- C'è un modo per indicare a Spring di non tentare di generare una query in base al nome di questo metodo?
- Devo solo evitare di utilizzare uno dei prefissi riconosciuti da Spring Data?
- Nessuno dei precedenti.
Grazie!
Non sono sicuro che questo sia il vero problema oppure no, UserRepositoryCustomImpl implementa UserRepositoryCustom? –
Sì, hai ragione, e lo fa, l'ho appena perso mentre scrivevo la domanda. Grazie! –