Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java hibernate如何在记录以特定格式保存后更新值_Java_Hibernate_Insert Update - Fatal编程技术网

java hibernate如何在记录以特定格式保存后更新值

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

我想为表中的记录生成两种格式的唯一代码。 像这样

1)
“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)的,以及它是如何递增的。在这种情况下,您必须在服务器端或数据库中管理它。