【发布时间】:2018-05-04 17:04:25
【问题描述】:
我正在使用 JPA Criteria API,在我的查询多选中,我想检索一个枚举属性,而不是枚举本身。
这是我的查询:
final CriteriaQuery<MyClassDTO> query = builder.createQuery(MyClassDTO.class);
在MyClassDTO我有4个字段如下:
private String icon;
private String provenance;
private int sizeX;
private int sizeY;
我从中检索数据的路径是:
final Root<MyClass> from = query.from(MyClass.class);
MyClass 有 3 个字段:
@Column
@Enumerated(EnumType.STRING)
private EnumTileIcon enumTileIcon;
@Column
@Enumerated(EnumType.STRING)
private EnumProvenance enumProvenance;
@Column
@Enumerated(EnumType.STRING)
private EnumSize enumSize;
我想做的是使用query.multiselect 填充MyClassDTO,如下所示:
query.multiselect(
from.get(MyClass_.enumTileIcon.toString()),
from.get(MyClass_.enumProvenance.name()),
from.get(MyClass_.enumSize.getWidth()),
from.get(MyClass_.enumSize.getHeight())
);
我该如何解决这个问题?
【问题讨论】:
-
我认为您必须为此使用元组查询。
-
@Antoniossss 我该怎么做?
-
builder.createQuery(Tuple.class);
标签: java jpa enums dao criteria-api