私はJPA Criteria APIを使用しています。私のクエリの複数選択では、enum属性ではなくenum属性を取得したいと考えています。列挙型フィールドを持つエンティティでJPA CriteriaQueryを使用してDTOクラス文字列フィールドを設定するにはどうすればよいですか?
これは私のクエリです:
MyClassDTO
で
final CriteriaQuery<MyClassDTO> query = builder.createQuery(MyClassDTO.class);
私は次のように4つのフィールドがあります。
private String icon;
private String provenance;
private int sizeX;
private int sizeY;
を私はからデータを取得していますパスは次のとおりです。
final Root<MyClass> from = query.from(MyClass.class);
MyClass
には3つのフィールドがあります:
query.multiselect(
from.get(MyClass_.enumTileIcon.toString()),
from.get(MyClass_.enumProvenance.name()),
from.get(MyClass_.enumSize.getWidth()),
from.get(MyClass_.enumSize.getHeight())
);
:私は何をしたいか
@Column
@Enumerated(EnumType.STRING)
private EnumTileIcon enumTileIcon;
@Column
@Enumerated(EnumType.STRING)
private EnumProvenance enumProvenance;
@Column
@Enumerated(EnumType.STRING)
private EnumSize enumSize;
は、query.multiselect
を使用して、このような何かをMyClassDTO
を移入するのですか?
私はこれに対してタプルクエリーを使用する必要があると思います。 – Antoniossss
@Antoniossssどうすればいいですか? –
builder.createQuery(Tuple.class); – Antoniossss