java hibernate如何在记录以特定格式保存后更新值
我想为表中的记录生成两种格式的唯一代码。 像这样 1)java hibernate如何在记录以特定格式保存后更新值,java,hibernate,insert-update,Java,Hibernate,Insert Update,我想为表中的记录生成两种格式的唯一代码。 像这样 1) “Firstprefix”+“ddmmyyyy”+Sr.number,例如AD190620151 2) “secondprefix”+“ddmmyyyy”+Sr.number,例如AP190620151 如果插入另一条记录,则该记录将是其中一条,但序列号不变 e、 g AD190620152 AP190620152 这是根据记录中的另一个字段生成的。如何做到这一点,请给出mi答案 我试着用下面的方法 @Override
“Firstprefix”+“ddmmyyyy”+Sr.number,例如AD190620151
2) “secondprefix”+“ddmmyyyy”+Sr.number,例如AP190620151
如果插入另一条记录,则该记录将是其中一条,但序列号不变
e、 g AD190620152
AP190620152
这是根据记录中的另一个字段生成的。如何做到这一点,请给出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
,有关更多信息,请查看
您的代码应该如下所示:
new SimpleDateFormat("ddMMyyyy").format(newDate())
@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;
}
编辑:
为了使代码在最后一次中递增,您只需在类中使用两个变量ap
和dp
,并使用1
初始化,在方法中,您根据if block
递增它们,您的代码应如下所示:
new SimpleDateFormat("ddMMyyyy").format(newDate())
@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;
}
定义“我不能”。你预期会发生什么?会发生什么?提示:阅读SimpleDateFormat中“mm”的含义:对不起,“mm”是两位数形式的月份。即“mm”不,它不是。再次阅读文档。它应该是
SimpleDateFormat(“ddMMyyyy”)
,因为MM
指的是日期中的月份。日期格式没有问题我想更改最后一个序列号而不是“order.getId()”我想按如下方式编码-:假设插入新记录,如果记录是“AD”类型,则代码为“AD190620151”,再次插入同一类型记录,然后将其编码为“AD190620152”。请将重点放在最后一位。但插入“AP”类型记录,然后编码为“AP190620151”。下一个插入记录是“AD”类型,然后它将是AD190620153并继续。@dipesh查看我的编辑。确定。但如何维护此系列。假设在新事务中另一个“AP”然后插入类型记录“AP190620152”。那么它是如何得到最后类型的序列号代码(AP)的,以及它是如何递增的。在这种情况下,您必须在服务器端或数据库中管理它。