У меня проблемы с написанием кода, который позволил бы напрямую получить информацию о пользователе и запросить информацию. Это моя структура MongoDB,
db.user.find();
user:
{
"name" : "KSK",
"claim" : [objectId("52ffc4a5d85242602e000000"),objectId("52ffc4a5d85242602e000001")]
}
claim:
[
{
"_id" : "52ffc4a5d85242602e000001",
"claimName" :"XXXX"
},
{
"_id" : "52ffc4a5d85242602e000000",
"claimName" :"YYY"
}
]
Мой класс Entity:
@Document(collection="user")
public class User{
@Id
private String id;
private String name;
@DBRef
private List<Claim> claim;
// setter and getter
}
Класс претензии:
@Document(collection="Claim")
public class Claim{
@Id
private String id;
private String claimName;
}
У меня есть способ получить пользователей по именам, как показано ниже,
public User findByName(String name);
Если я попытаюсь использовать этот метод, я получаю сообщение об ошибке:
Не найдено преобразователя, способного преобразовать тип org.bson.types.ObjectId
в тип java.lang.String
Итак, я изменил свой класс сущности User, как показано ниже,
Вместо private List<Claim> claim
;
Поменял как Private List<ObjectId> claim
;
Теперь, если я выполняю метод (findByName), я получаю объект пользователя, у которого есть оба заявленных идентификатора объекта ("52ffc4a5d85242602e000001","52ffc4a5d85242602e000000")
, затем перебираю список утверждений и получаю детали утверждения, соответствующие идентификатору объекта утверждения.
Вместо этого, когда я выполняю findByName
метод, я хочу получить сведения о пользователе и заявке. Как я могу добиться этой функциональности?
claimname
в вашем классе Java иclaimName
в вашем JSON. - person Jan B.   schedule 30.05.2017