После многих попыток я здесь, чтобы обратиться за помощью к любому из вас. Решение очень необходимо.
У меня есть родительская (терпеливая) сущность и ее дочерняя (адресная) сущность. Где я хочу получить все зарегистрированные пациенты и адресные данные, где адресные данные могут быть нулевыми. Это означает, что у пациента может не быть информации об адресе.
Я написал логи c, используя CriteriaBuilder, как это
CriteriaBuilder builder = this.em.getCriteriaBuilder();
CriteriaQuery<Object[]> query = builder.createQuery(Object.class);
Root<TaskImpl> patientRoot = query.from(Patient.class);
Root<ContentImpl> addressRoot = query.from(Address.class);
query.multiselect(patientRoot.get("patinetId"),patientRoot .get("patinetName"),
addressRoot.get("city));
Predicate patAddressJoinPred = builder.equal(
patientRoot.get("patientId"),
addressRoot.get("patient").get("patientId"));
query.where(builder.and(patAddressJoinPred));
. Пожалуйста, найдите сущности пациента и адреса для вашей ссылки,
Patient.java-----------------
@Entity
public class Patinet{
@Id
private Long patentId;
private String patientName;
}
------------------------------
Address.java------------------
@Entity
public class Address{
@Id
private Long addressId;
private String city;
@OneToOne(FetchType.Lazy)
@JoinColumn("patinet_id")
private Patient patient;
}
-------------------------------
Но после построения критерия я применил перекрестное соединение к объекту адреса, что приведет к проблемам с производительностью, и я не могу получить информацию о пациентах, у которых нет адреса.
для простоты ниже приведены примерные данные и мой требуемый результат.
Patient table
-------------
id | name
-------------
1 | Sameul
2 | Jhon
3 | khan
4 | Lee
-------------
Address table
-----------------------
id | city | patient_id
-----------------------
1 | Blz | 1
2 | Stn | 3
требуется выход
-------------------------
id | patientName | city
-------------------------
1 | Sameul | blz
2 | Jhon |
3 | khan | stn
4 | Lee |
Но получается вот так
-------------------------
id | patientName | city
-------------------------
1 | Sameul | blz
3 | khan | stn
-------------------------
Будем ждать вашего ценного решения Спасибо ..