Jpql двойной запрос

277
15 июня 2017, 04:50

Требуется написать запрос, в котором мы получим все 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;
}
}
Answer 1

Наверное, запрос должен выглядеть примерно так:

List<Calculate> openCalculate = 
session.createQuery("SELECT c 
                     FROM Calculate c join c.client cl
                     WHERE c.state = true  
                       AND cl.state = true")
      .list();
READ ALSO
Сортировка по алфавитному порядку в HQL Hibernate

Сортировка по алфавитному порядку в HQL Hibernate

Не подскажете как сделать сортировку в hql на русском языке?

304
Подружить Fragment и AppCompatActivity

Подружить Fragment и AppCompatActivity

Есть необходимость унаследовать класс одновременно от Fragment и AppCompatActivityДело в том, что активность должна быть фрагментом, а AppCompatActivity мне...

302
Как убрать панель навигации Android 5.0+

Как убрать панель навигации Android 5.0+

Работаю с приложением-киоском на Android 51

379
работа с TabHost [требует правки]

работа с TabHost [требует правки]

Пожалуйста, приведите пример работы с TabHost'ом

425