Mysema Querydsl - Перечисление в строку
Пример:
public enum ShapeType {
CIRCLE, SQUARE, RECTANGLE TRIANGLE
}
public ShapeEnity {
@Enumerated(EnumType.STRING)
private ShapeType shapeType;
.......
}
public ShapeDTO {
private String shapeType;
....
}
public ShapeFinder {
public ShapeDTO find() {
QShape shape = QShape.shape;
return createQuery()
.from(shape)
.list(Projections.fields(ShapeDTO.class,
shape.shapeType.stringValue
))
}
}
Как и в примере выше, я хотел бы получить строковое значение enum ShapeType в объекте DTO. Как должно выглядеть это преобразование? Я попытался, как в примере выше, и выглядит хорошо, но когда я использую shapeType.stringValue(), а затем Hibernate создает запрос с вызовом функции to_char(Oracle) или str (Sybase), как в примере:
SELECT TO_CHAR(ShapeType) From Shape;
Зачем? Как это исправить?