簡體   English   中英

枚舉JPQL中的字符串選擇查詢

[英]enum to string in JPQL select query

我在將java枚舉轉換為字符串轉換時遇到問題。 如果您有任何想法請。

String mainQuerySt = "select o.ttType from Tt o";

Query mainQuery = em.createQuery(mainQuerySt);
List result = mainQuery.setFirstResult(offset).setMaxResults(numofRecords).getResultList();

我想要ttType enum的字符串表示形式。 怎么做?

我的Tt定義:

@Enumerated(EnumType.ORDINAL)
@Column(name = "tt_type", nullable = false)
private TTType ttType;   

我的枚舉TTType定義:

public enum TTType
{
    FC,
    PD
    ;

    @Override
    public String toString()
    {
        switch (this)
        {
            case FC:
                return "FC";
            case PD:
                return "PD";
            default:
                throw new AssertionError();
        }
    }
}

由於系統處於活動@Enumerated所以我現在不能在@Enumerated使用EnumType.STRING

請回復。

一種選擇是使用enum構造函數作為波紋管:

public enum TTType {
    FC("FC"),
    PD("PD");

    private String value; // the value

    // Constructor 
    TTType(String value) {
        this.value = value;
    }

    public String getValue() {
        return this.value;
    }

    public String toString() {
        return this.value;
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM