数据类型short的模型属性已删除前导零

时间:2012-06-01 19:51:15

标签: java spring hibernate

我的模型问题是从数据类型为“short”的属性中删除前导零。

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

Purchase purchase = purchaseService.getById(purchaseId);

expiry属性在应为'0612'时显示值'612'。

我可以添加注释来防止这种情况吗? (我想避免在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;
    }
}

由于

1 个答案:

答案 0 :(得分:0)

那个短原始类型只是一个数字,所以前导'0'是无关紧要的。它永远不会存储它。

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

当我做电子商务应用程序时,我们没有对该值做出决定,因此我们最容易将其存储为String,这将保留前导'0'。然后我们将输入的字符串传送给CC公司。

如果您需要进行日期算术或比较,您可以将其存储为Date对象,然后您可以以任何您想要的格式打印。但要小心确定0612是指7月1日还是7月最后一天。并且不要忘记Java Dates是0索引的,所以当用户输入6并且意味着6月你需要调整它以创建Date对象。