У меня есть таблица в БД, которую я не могу изменить, и у меня есть список пар значений, которые я должен использовать для выбора записей из этой таблицы, которые точно соответствуют обоим значениям в списке.
Например, мой список пар состоит из ('A1', 'A2')
, ('B1', 'B2')
, ('C1', 'C2')
, а моя таблица состоит из следующих данных
--------------------------
| ID | COLUMN1 | COLUMN2 |
--------------------------
| 1 | 'A1' | 'A2' |
| 2 | 'B1' | 'B2' |
| 3 | 'A1' | 'B2' |
| 4 | 'B1' | 'A2' |
| 5 | 'C1' | 'C2' |
--------------------------
Правильный набор результатов должен быть
1, 'A1', 'A2'
2, 'B1', 'B2'
5, 'C1', 'C2'
, что означает, что в нем не должно быть таких записей, как
3, 'A1', 'B2'
4, 'B1', 'A2'
.
Как мне добиться такого результата с помощью HQL?Производительность является препятствием в моей ситуации, поэтому решение, реализованное посредством объединения значений, для меня нецелесообразно.
РЕДАКТИРОВАТЬ:
, если это может помочь,Java-сущность очень проста и выглядит так:
package org.example;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
@Entity
@Table(name = "MY_TABLE")
public class ExampleEntity implements Serializable {
@Id
@Column(name = "ID", unique = true)
private int id;
@Column(name = "COLUMN1")
private String column1;
@Column(name = "COLUMN2")
private String column2;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getColumn1() {
return column1;
}
public void setColumn1(String column1) {
this.column1 = column1;
}
public String getColumn2() {
return column2;
}
public void setColumn2(String column2) {
this.column2 = column2;
}
}