0

我的模型从数据类型“短”的属性中删除前导零时遇到问题。

因此,例如,如果我将其包含在我的控制器中:

Purchase purchase = purchaseService.getById(purchaseId);

到期属性显示值“612”,而它应该是“0612”。

我可以添加一个注释来防止这种情况吗?(我想避免向 getter 添加任何自定义代码来修复它)。

@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”是微不足道的。它永远不会存储它。

看起来您正在存储信用卡的到期日期。

当我做电子商务应用程序时,我们并没有对该值做出决定,所以我们最容易将它存储为一个字符串,它会保留前导的“0”。然后我们将输入的字符串传输到 CC 公司。

如果您需要进行日期算术或比较,您可以将其存储为 Date 对象,然后您可以以您想要的任何格式打印。但要小心确定 0612 是指 7 月 1 日还是 7 月末。并且不要忘记 Java 日期索引为 0,因此当用户输入 6 并表示六月时,您需要对其进行调整以创建日期对象。

于 2012-06-01T20:11:12.500 回答