0

モデルがデータ型「short」の属性から先頭のゼロを削除するという問題が発生しています。

たとえば、これをコントローラーに含めると、次のようになります。

Purchase purchase = purchaseService.getById(purchaseId);

expiry 属性は、'0612' であるべきときに '612' の値を示します。

これを防ぐために追加できる注釈はありますか? (ゲッターにカスタムコードを追加して修正することは避けたい)。

@Entity
@XmlRootElement
public class Purchase implements Serializable
{
    /**
     * 
     */
    private static final long serialVersionUID = 6603477834338392140L;

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    @OneToMany(mappedBy = "purchase", fetch = FetchType.LAZY)
    private List<Tag> tags;

    private Long pan;

    private short cvc;

    private short expiry;

    public short getExpiry()
    {
        return expiry;
    }

    public void setExpiry(short expiry)
    {
        this.expiry = expiry;
    }
}

ありがとう

4

1 に答える 1

0

その短いプリミティブ型は単なる数値であるため、先頭の「0」は重要ではありません。それは決してそれを保存しません。

クレジット カードの有効期限を保存しているようです。

私が e コマース アプリを作成したとき、その値について決定を下していなかったので、先頭の「0」を保持する文字列として格納するのが最も簡単でした。次に、入力された文字列を CC Company に送信します。

日付の計算または比較を行う必要がある場合は、それを Date オブジェクトとして保存し、必要な形式で出力できます。ただし、0612 が 7 月 1 日を意味するのか、7 月の終わりを意味するのかを慎重に判断してください。また、Java Dates のインデックスは 0 であることを忘れないでください。ユーザーが 6 を入力して 6 月を意味する場合、それを調整して Date オブジェクトを作成する必要があります。

于 2012-06-01T20:11:12.500 に答える