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;

Зачем? Как это исправить?

0 ответов

Другие вопросы по тегам