私は持っている
@Document
public class Employee
{
@Id
Long empCode;
String empSurname;
String address;
// getters setters
}
次のようなMongoリポジトリを使用してクエリを作成しました
public interface EmployeeRepository extends MongoRepository<Employee, Long>
{
List<Employee> findEmployeesByEmpCode(int empCode);
@Query(value="{ 'empCode' : ?0 }", fields="{ 'address' : 1}")
List<String> findAddressByEmpCode(int empCode);
最初のクエリは機能しますが、2 番目のクエリは失敗します。返されるリストのタイプを従業員に変更した場合にのみ機能します。
失敗時のエラーは
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 に変換する方法がわかりません。どうすればこれを実装できますか? どんな例でも大歓迎です。
ありがとう、