java hibernate 如何在以特定格式保存记录后更新值
java hibernate how update value after record save in certain format
我想为我在 table 中的记录生成两种格式的唯一代码。
喜欢以下方式
1) "Firstprefix"+"ddmmyyyy"+Sr.number e.g AD190620151
2) "secondprefix"+"ddmmyyyy"+Sr.number e.g AP190620151
如果插入另一条记录,它将是其中一条,但序列号没有变化
例如 AD190620152
AP190620152
这个是根据record中的另一个字段生成的 如何做到这一点 请给mi答案。
我试过以下方法
@Override
public String createOrder(OrderMasterTbl order) {
getHibernateTemplate().saveOrUpdate(order);
Integer addId=order.getAdType().getId();
String id = null ;
if(addId.equals(1))
{
id="ap"+new SimpleDateFormat("ddmmyyyy").format(newDate())+order.getId();
}else{
id="dp"+new SimpleDateFormat("ddmmyyyy").
format(newDate())+order.getId();
}
System.out.print(id);
order.setOrderCode(id);
getHibernateTemplate().saveOrUpdate(order);
return id;
}
但是这样我无法根据两种格式生成正确的序列号。
你在这里没有得到正确的序列号,因为你使用了错误的 SimpleDateFormat
格式,你指的是 m
月份,而它应该是 M
,查看 SimpleDateFormat Documentation 了解更多信息。
你的代码应该是这样的:
new SimpleDateFormat("ddMMyyyy").format(newDate())
编辑:
为了使最后的代码递增,您只需在用 1
初始化的 class 中使用两个变量 ap
和 dp
和在你的方法中,你根据你的 if block
递增它们,你的代码应该是这样的:
@Override
public String createOrder(OrderMasterTbl order) {
getHibernateTemplate().saveOrUpdate(order);
Integer addId=order.getAdType().getId();
String id = null ;
if(addId.equals(1)){
id="ap"+ new SimpleDateFormat("ddMMyyyy").format(newDate())+ap;
ap++;
}else{
id="dp"+new SimpleDateFormat("ddMMyyyy").format(newDate())+dp;
dp++;
}
System.out.print(id);
order.setOrderCode(id);
getHibernateTemplate().saveOrUpdate(order);
return id;
}
我想为我在 table 中的记录生成两种格式的唯一代码。 喜欢以下方式
1) "Firstprefix"+"ddmmyyyy"+Sr.number e.g AD190620151
2) "secondprefix"+"ddmmyyyy"+Sr.number e.g AP190620151
如果插入另一条记录,它将是其中一条,但序列号没有变化 例如 AD190620152 AP190620152 这个是根据record中的另一个字段生成的 如何做到这一点 请给mi答案。
我试过以下方法
@Override
public String createOrder(OrderMasterTbl order) {
getHibernateTemplate().saveOrUpdate(order);
Integer addId=order.getAdType().getId();
String id = null ;
if(addId.equals(1))
{
id="ap"+new SimpleDateFormat("ddmmyyyy").format(newDate())+order.getId();
}else{
id="dp"+new SimpleDateFormat("ddmmyyyy").
format(newDate())+order.getId();
}
System.out.print(id);
order.setOrderCode(id);
getHibernateTemplate().saveOrUpdate(order);
return id;
}
但是这样我无法根据两种格式生成正确的序列号。
你在这里没有得到正确的序列号,因为你使用了错误的 SimpleDateFormat
格式,你指的是 m
月份,而它应该是 M
,查看 SimpleDateFormat Documentation 了解更多信息。
你的代码应该是这样的:
new SimpleDateFormat("ddMMyyyy").format(newDate())
编辑:
为了使最后的代码递增,您只需在用 1
初始化的 class 中使用两个变量 ap
和 dp
和在你的方法中,你根据你的 if block
递增它们,你的代码应该是这样的:
@Override
public String createOrder(OrderMasterTbl order) {
getHibernateTemplate().saveOrUpdate(order);
Integer addId=order.getAdType().getId();
String id = null ;
if(addId.equals(1)){
id="ap"+ new SimpleDateFormat("ddMMyyyy").format(newDate())+ap;
ap++;
}else{
id="dp"+new SimpleDateFormat("ddMMyyyy").format(newDate())+dp;
dp++;
}
System.out.print(id);
order.setOrderCode(id);
getHibernateTemplate().saveOrUpdate(order);
return id;
}