我的模型问题是从数据类型为“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;
}
}
由于
答案 0 :(得分:0)
那个短原始类型只是一个数字,所以前导'0'是无关紧要的。它永远不会存储它。
看起来您正在存储信用卡的到期日期。
当我做电子商务应用程序时,我们没有对该值做出决定,因此我们最容易将其存储为String,这将保留前导'0'。然后我们将输入的字符串传送给CC公司。
如果您需要进行日期算术或比较,您可以将其存储为Date对象,然后您可以以任何您想要的格式打印。但要小心确定0612是指7月1日还是7月最后一天。并且不要忘记Java Dates是0索引的,所以当用户输入6并且意味着6月你需要调整它以创建Date对象。