我有一个简单的节点,如下所示
@Document("users")
public class User {
@Id // db document field: _key
private String id;
@ArangoId // db document field: _id
private String arangoId;
private String firstName;
private String lastName;
private String country;
public User() {
super();
}
public User(String id) {
this.id = id;
}
public User(String id, String country) {
this.id = id;
this.country = country;
}
// getter & setter
@Override
public String toString() {
return "User [id=" + id + ", name=" + firstName + ", surname=" + lastName + "]";
}
public String getId() {
return id;
}
}
这是一个存储库类,但是方法getListOfCountryAndNumUsers返回null,即使我已经将不同国家的用户插入到数据库中。
public interface UserRepository extends ArangoRepository<User, String> {
@Query("FOR u IN users COLLECT country = u.country WITH COUNT INTO length RETURN
{\"country\" : country, \"count\" : length }")
Iterable<CountryAndNumUsers> getListOfCountryAndNumUsers();
}
我认为问题可能出在查询注解中的查询语法上。我在arangodb文档here的spring data arango db部分中没有看到任何使用collect操作的直接示例,但我在arangoDb文档here的“高级操作”部分中看到了collect操作
请帮帮忙。谢谢!
1条答案
按热度按时间3bygqnnd1#
所以我发现了我的错误。它在一个我没有在问题中添加的类中。那是方法getListOfCountryAndNumUsers()的返回对象的类,即类CountryAndNumUsers。
因此存在Map不匹配,因为查询返回的对象具有不同的字段名。