枚举到JPQL选择查询

时间:2016-09-24 11:42:23

标签: java enums jpql

我在将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();
        }
    }
}

由于系统处于正常状态,我现在无法在EnumType.STRING中使用@Enumerated

请回复。

1 个答案:

答案 0 :(得分:0)

一个选项可能是使用枚举构造函数如下:

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;
    }
}