z
     
      在想相对应的
     
     
      pojo
     
     
      类的配置文件中设置成以下:
     
    
<id name=”ckid” type=”java.lang.String”>
     <column name=”ckid”
     
      length=”14″
     
     />
    
     
      <generator class=”com.pojo.MyId” />
     
    
</id>
     写个
     
      MyId
     
     
      的实现类
     
    
     
      public
     
     
      class
     
     MyId
     
      implements  org.hibernate.id.IdentifierGenerator
     
     {
     
     
      //
      
       这里不要搞错了,是实现了
      
      
       identifierGenerator
      
      
       的接口
      
     
    
     
      //外部调用 session.save(table2);
     
    
     
      //这个方法里面不能写hql语句,所以1.用jdbc 2.hql写在配置文件
     
    
     
      public
     
     Serializable generate(SessionImplementor session, Object arg1)
    
     
      throws
     
     HibernateException {
     
    
     
      //获取query对象
     
    
     
      //如果这里是把<query></query>标签写在xxx.hbm.xml的<class>里面,就需要写上全名:如hwt.bean.Dep.getMaxId
      
     
    
     Query  query = session.getNamedQuery(
     
      “getMaxId”
     
     );
    
     
      //格式化日期
     
    
     SimpleDateFormat sdf =
     
      new
     
     SimpleDateFormat(
     
      “yyyyMMdd”
     
     );
    
     String today = sdf.format(
     
      new
     
     Date());
    
     query.setParameter(0,
     
      “CK”
     
     +today+
     
      “%”
     
     );
    
     
      //得到最大编号
     
    
String id = (String) query.uniqueResult();
     
      if
     
     (id==
     
      null
     
     )
    
     
      return
     
     
      “CK”
     
     +today+
     
      “0001”
     
     ;
    
     
      return
     
     
      “CK”
     
     +(
     
      Long
     
     .parseLong( id.substring(2) )+1);
    
}
}
 
