Требуется написать запрос, в котором мы получим все Calculate по условию поля state = true, при этом, чтобы связанный список Client был взят тоже по условию уже поля state клиента state = true и был присвоен полю расчета client. Получился примерно такой запрос, к сожалению не работает. Как правильно написать запрос?
@Query("SELECT c FROM Calculate c WHERE c.state = true AND c.client =
(SELECT cc FROM Client cc WHERE cc.state = true)")
List<Calculate> getAllOpen();
}
Сущности расчета и клиента.
@Entity
@Table(name = "calculations")
public class Calculate {
@Id
@GeneratedValue
private Long id;
private boolean state = true;
@OneToMany(fetch = FetchType.EAGER)
private List<Client> client;
public Calculate() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public boolean isState() {
return state;
}
public void setState(boolean state) {
this.state = state;
}
public List<Client> getClient() {
return client;
}
public void setClient(List<Client> client) {
this.client = client;
}
}
@Entity
@Table(name = "clients")
public class Client {
@Id
@GeneratedValue
private Long id;
private boolean state = true;
@ManyToOne(fetch = FetchType.EAGER)
private Calculate calculate;
public Client() {
}
public boolean isState() {
return state;
}
public void setState(boolean state) {
this.state = state;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Calculate getCalculate() {
return calculate;
}
public void setCalculate(Calculate calculate) {
this.calculate = calculate;
}
}
Наверное, запрос должен выглядеть примерно так:
List<Calculate> openCalculate =
session.createQuery("SELECT c
FROM Calculate c join c.client cl
WHERE c.state = true
AND cl.state = true")
.list();
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не подскажете как сделать сортировку в hql на русском языке?
Есть необходимость унаследовать класс одновременно от Fragment и AppCompatActivityДело в том, что активность должна быть фрагментом, а AppCompatActivity мне...