J'aiprintemps données MongoRepositories DtoInstantiatingConverter
@Document
public class Employee
{
@Id
Long empCode;
String empSurname;
String address;
// getters setters
}
J'ai écrit une requête en utilisant comme Mongo Référentiels
public interface EmployeeRepository extends MongoRepository<Employee, Long>
{
List<Employee> findEmployeesByEmpCode(int empCode);
@Query(value="{ 'empCode' : ?0 }", fields="{ 'address' : 1}")
List<String> findAddressByEmpCode(int empCode);
Les premiers travaux de la requête, mais la seconde échoue. Cela ne fonctionne que si je change le type de liste renvoyé à Employé.
L'erreur à l'échec est
java.lang.IllegalArgumentException: [Assertion failed] - this argument is required; it must not be null
at org.springframework.util.Assert.notNull(Assert.java:115)
at org.springframework.util.Assert.notNull(Assert.java:126)
at org.springframework.data.convert.EntityInstantiators.getInstantiatorFor(EntityInstantiators.java:86)
at org.springframework.data.mongodb.repository.query.DtoInstantiatingConverter.<init>(DtoInstantiatingConverter.java:61)
at org.springframework.data.mongodb.repository.query.MongoQueryExecution$ResultProcessingConverter.convert(MongoQueryExecution.java:376)
at org.springframework.data.mongodb.repository.query.MongoQueryExecution$ResultProcessingExecution.execute(MongoQueryExecution.java:345)
at org.springframework.data.mongodb.repository.query.AbstractMongoQuery.execute(AbstractMongoQuery.java:91)
De toute évidence, il ne peut pas fonctionner comment convertir les valeurs du contenu objet employé à cordes. Comment puis-je implémenter ceci? Tout exemple serait très apprécié.
Merci,
Merci beaucoup @Ori. C'est exactement ce qui était requis. – Macky
Je n'arrive pas à renvoyer une liste de la projection. Cela me donne juste le premier élément correspondant. Si j'exécute la requête dans la console, je récupère une liste de valeurs. La projection est similaire à @Value ("# {target.address}") public Liste getStringValue(); –
Macky
@John. Je n'ai pas vraiment compris votre commentaire. Êtes-vous toujours confronté à des problèmes? De plus, comme vous interrogez la propriété '@ Id' (' empCode'), un seul résultat est attendu. –