简体   繁体   English

枚举JPQL中的字符串选择查询

[英]enum to string in JPQL select query

I am facing problem in converting java enum to string conversion. 我在将java枚举转换为字符串转换时遇到问题。 Please if you have any idea. 如果您有任何想法请。

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

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

I want the string representation of ttType enum . 我想要ttType enum的字符串表示形式。 How to do it? 怎么做?

My Tt Definition: 我的Tt定义:

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

My enum TTType definition: 我的枚举TTType定义:

public enum TTType
{
    FC,
    PD
    ;

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

I can't use EnumType.STRING in @Enumerated now since the system is live. 由于系统处于活动@Enumerated所以我现在不能在@Enumerated使用EnumType.STRING

Please reply. 请回复。

One option may be to use enum constructor as bellow: 一种选择是使用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