У меня естьSpring Data MongoRepositories DtoInstantiatingConverter
@Document
public class Employee
{
@Id
Long empCode;
String empSurname;
String address;
// getters setters
}
Я написал запрос, используя Монго Хранилища как
public interface EmployeeRepository extends MongoRepository<Employee, Long>
{
List<Employee> findEmployeesByEmpCode(int empCode);
@Query(value="{ 'empCode' : ?0 }", fields="{ 'address' : 1}")
List<String> findAddressByEmpCode(int empCode);
Первые работы запроса, но второй не удается. Он работает только в том случае, если я изменяю возвращаемый тип List to Employee.
Ошибка при выходе из строя является
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)
Очевидно, что он не может работать, как преобразовать значения из содержащегося в ней объекта Employee к String. Как это реализовать? Любой пример будет высоко оценен.
Спасибо,
Большое спасибо @Ori. Это именно то, что требовалось. – Macky
Кажется, я не могу вернуть список из проекции. Это просто дает мне первый соответствующий элемент. Если я запустил запрос в консоли, я получу список значений. Проекция подобна этой @Value ("# {target.address}") public List getStringValue(); –
Macky
@John. Не совсем понял, что вы комментируете. Вы все еще сталкиваетесь с проблемами? Кроме того, поскольку вы запрашиваете свойство '@ Id' (' empCode'), ожидается один результат. –