0

私は ENUM を初めて使用するので、モデルを少し操作する前に、これらすべてを正しく行っていることを確認したいと思います。私の ENUM には、 として知られるデータベースに保存されている短い文字列がnameあり、descriptionこれがユーザーに表示されます。私の目的は、ページに表示するコンテンツ オブジェクトの説明を取得することです。

もちろん

<td valign='top'><strong>Paperless:</strong> ${content.getPaperless()}</td>

しか表示されないため、実行しませんEDELIVERY_REQUIRED。これを適切に機能させるには、どのように調整する必要がありますか?

私の編集ページはうまく機能します:

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

私の列挙型:

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

私のモデル

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

マイ コンテンツ サービス

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();
    }
}
4

1 に答える 1

3
  1. private Paperless paperless文字列ではなく、エンティティにマップします。JPAは列挙マッピングをサポートしています
  2. 使用する${content.paperless.description}
于 2012-04-09T20:40:49.593 に答える