0

Priorityオブジェクトとしてキャストしたい以下のエンティティマッピング。ゲッターで、「Short」を「Priority」に変更しthis.priorityてスイートをフォローすると、'basic' attribute type should not be priority. これを優先度として設定/取得するにはどうすればよいですか?

@Column(name = "priority", nullable = false, insertable = true, updatable = true, length = 5, precision = 0)
public Short getPriority() {
    return priority;
}

public void setPriority(Short priority) {
    this.priority = priority;
}

私の優先クラス:

public class Priority {
    public static final Priority TOP = new Priority("TOP", 100);

    public static final Priority PRIORITY_REMAN = new Priority("PRIORITY_REMAN", 250);

    public static final Priority PRIORITY = new Priority("PRIORITY", 500);

    public static final Priority STANDARD_REMAN = new Priority("STANDARD_REMAN", 750);

    public static final Priority STANDARD = new Priority("STANDARD", 1000);

    private final String name;
    private final Integer value;

    public Priority() {
        this.name = null;
        this.value = 0;
    }

    protected Priority(String name, int value) {
        this.name = name;
        this.value = value;
    }

    public String getName() {
        return name;
    }

    @JsonView({Views.ShutdownView.class})
    public Integer getValue() {
        return value;
    }

    public String toString() {
        return getName();
    }
}
4

2 に答える 2

0

できません。Short は final クラスなので、拡張できません。

私がお勧めするのは、必要な別のゲッターを作成することです。次のようなものです。

public Priority getJsonPriority() {
    return new Priority(this.priority);
}

または、Priority.class を Persistent Entity として作成し、それに OneToOne 関係を追加しますが、これは最適なソリューションではありません。

于 2013-09-20T20:02:18.703 に答える