首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于值在Java中获取ENUM描述

基于值在Java中获取ENUM描述
EN

Stack Overflow用户
提问于 2012-04-09 20:33:27
回答 1查看 2.9K关注 0票数 0

我是ENUM的新手,所以我想在对我的模特做一个小手术之前,确定我正在做所有这些事情。我的ENUM有一个较短的字符串,存储在名为name的数据库中,description是用户所看到的。我的目标是获取要在页面上显示的内容对象的描述。

当然了

代码语言:javascript
复制
<td valign='top'><strong>Paperless:</strong> ${content.getPaperless()}</td>

不会这么做,因为这只会显示给EDELIVERY_REQUIRED。我需要如何调整它才能使它正常运行?

我的编辑页面很好用:

代码语言:javascript
复制
    <td valign='top'>
        <strong>Go Paperless Messaging</strong><br/>
        <form:select path="paperless">
            <form:options items="${paperlessEnumValues}" itemValue="name" itemLabel="description"/>
        </form:select>
    </td>

My enum:

代码语言:javascript
复制
public enum Paperless {
    NONE(null, ""),
    EDELIVERY_RECOMMENDED("EDELIVERY_RECOMMENDED", "Recommend eDelivery"),
    EDELIVERY_REQUIRED("EDELIVERY_REQUIRED", "Require eDelivery"),
    EDELIVERY_REQUIRED_JUSTIFICATION("EDELIVERY_REQUIRED_JUSTIFICATION", "Require eDelivery w/out justification");

    private String name;
    private String description;
    Paperless(String name, String description) {
        this.name = name;
        this.description = description;
    }
    public String getName() {
        return this.name;
    }
    public String getDescription() {
        return this.description;
    }
}

My Model

代码语言:javascript
复制
public class Content implements Serializable {
...

    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 255)
    @Column(name = "paperless")
    private String paperless;
...
    public String getPaperless() {
        return paperless;
    }

    public void setPaperless(String paperless) {
        this.paperless = paperless;
    }

我的内容服务

代码语言:javascript
复制
private List<Content> findContentEntities(boolean all, int maxResults, int firstResult) {
    try {
        CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
        cq.select(cq.from(Content.class));
        Query q = em.createQuery(cq);
        if (!all) {
            q.setMaxResults(maxResults);
            q.setFirstResult(firstResult);
        }
        return q.getResultList();
    } finally {
        em.close();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-09 20:40:49

  1. Map private Paperless paperless在实体中,而不是字符串中。JPA支持枚举映射
  2. 使用
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10079481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档