Я использую querydsl-jpa, и у меня есть объект с именем DataSourceColumn с членом Enum:
@Enumerated(EnumType.STRING)
@Column(name="COULMN_TYPE")
private eColumnType columnType;
При попытке запросить этот объект:
QDataSourceColumn qDataSourceColumn = QDataSourceColumn.dataSourceColumn;
JPAQuery query = new JPAQuery(entityManager);
List<DataSourceColumn> kpis = query.from(qDataSourceColumn)
.where(qDataSourceColumn.columnType.eq(eColumnType.HEAD)))
.list(qDataSourceColumn);
Я получаю пустой список. При попытке выбрать его напрямую, как
SELECT * FROM DATA_SOURCE_COLUMN WHERE column_type = 'HEAD'
Я получаю требуемые результаты. Мне кажется, что я неправильно использую запрос по перечислению - как это исправить?
Изменить: сгенерированный JPQL
select dataSourceColumn
from DataSourceColumn dataSourceColumn
where dataSourceColumn.columnType = ?1
query.from(qDataSourceColumn).where(qDataSourceColumn.columnType.eq(eColumnType.HEAD))).toString()
. Вы получите JPQL, который выполняет QueryDSL. - person jmvivo   schedule 22.09.2014