я получил базу данных таблицы результатов, это выглядит следующим образом:Как сделать запрос с 3 компонентами ManyToOne?
Таблица Результат:
resultId, resultValue, patientId (its a Foreign key of the table Patient), scriptId(Foreign key of ScriptMW), userId(Foreign key of User)
и я забыл пользователь таблицы имеет также внешний ключ в нем, от patientId так 1 пользователь имеет больше пациентов .... его OneToMany аннотации там все они являются целыми числами
Вот как это выглядит, и в моем Java коде я получил это:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer resultId;
@ManyToOne
private User user;
@ManyToOne
private ScriptMW scriptMW;
@ManyToOne
private Patient patient;
@Lob
@Column(length=65536)
private String resultValue;
Так вы можете увидеть его 3 раза в ManyToOne аннотацию
Теперь мне нужно сделать запрос, чтобы получить все результаты одного пациента, который относится к пользователю, который использовал конкретный сценарий ...
Я получил userId, ScriptId и patientId как параметры пути, и это работает ... но теперь мне нужно получить все значения ... и я не знаю, как это сделать ... посмотрите на код ниже
я не могу даже выбрать что-нибудь из результата
@Override
public List<Result> getResults(Integer userId, Integer scriptId, Integer patientId) {
Query q=em.createQuery("Select r From Result r");
return q.getResultList();
}
После того, как я сделать предыдущий код я получаю эту ошибку:
Caused by: com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role: entities.User.patients, could not initialize proxy - no Session (through reference chain: java.util.ArrayList[0]->entities.Result["user"]->entities.User["patients"])
любые идеи?
Вы можете уточнить, какой из ваших вопросов связан с 'jquery' ..? –