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

时间:2015-06-19 06:30:50

标签: java hibernate insert-update

我希望为表格中的记录生成两种格式的唯一代码。 喜欢以下方式

1)"Firstprefix"+"ddmmyyyy"+Sr.number e.g AD190620151

2)"secondprefix"+"ddmmyyyy"+Sr.number e.g AP190620151

如果插入另一条记录,它将是其中之一,但序列没有变化 例如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;
}

但是这样我就无法根据两种格式生成正确的序列号。

1 个答案:

答案 0 :(得分:1)

您在此处未获得正确的序列号,因为SimpleDateFormat使用了错误的格式,您指的是m的月份,而应该是M,请查看 SimpleDateFormat Documentation 以获取更多信息。

您的代码应该是这样的:

new SimpleDateFormat("ddMMyyyy").format(newDate())

修改

为了使代码在最后一个增量,您只需在类中使用apdp,并使用1进行初始化,并在方法中增加它们根据您的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;
 }