code: public static String buildInsertSql(BeanDescFactory beanDescFactory, EntityOperator entityOperator, Class<?> entityType, NameConverter nameConverter,
              List<PropertyDesc> propDescs){
          StringBuilder sb = new StringBuilder();
          BeanDesc beanDesc = beanDescFactory.getBeanDesc(entityType);
  
          sb.append("INSERT INTO ").append(getTableName(entityType, nameConverter)).append(" (");
          {
              int count = 0;
              for(int i = 0; i < beanDesc.getPropertyDescSize(); i++){
                  PropertyDesc pd = beanDesc.getPropertyDesc(i);
                  PrimaryKeyInfo primaryKey = entityOperator.getPrimaryKeyInfo(entityType, pd, nameConverter);
                  if((primaryKey == null || primaryKey.generationType != GenerationType.IDENTITY)
                          && !pd.isTransient() && pd.isReadable() ){
                      if(count != 0){
                          sb.append(", ");
                      }
                      sb.append(getColumnName(entityOperator, entityType, pd, nameConverter));
                      count++;
                  }
              }
          }
          sb.append(") VALUES (");
          {
              int count = 0;
              for(int i = 0; i < beanDesc.getPropertyDescSize(); i++){
                  PropertyDesc pd = beanDesc.getPropertyDesc(i);
                  PrimaryKeyInfo primaryKey = entityOperator.getPrimaryKeyInfo(entityType, pd, nameConverter);
                  if((primaryKey == null || primaryKey.generationType != GenerationType.IDENTITY)
                          && !pd.isTransient() && pd.isReadable() ){
                      if(count != 0){
                          sb.append(", ");
                      }
                      sb.append(placeHolderForInsertAndUpdate(pd));
  
                      propDescs.add(pd);
  
                      count++;
                  }
              }
          }
          sb.append(")");
  
          return sb.toString();
      }
docs: Builds an insert SQL (a PreparedStatement) with correct parameters from the entity.
  
  @param beanDescFactory the bean descriptor factory
  @param entityOperator the entity operator
  @param entityType the entity class insert
  @param nameConverter the name converter
  @param propDescs the list of parameters
  
  @return Insert SQL
  @deprecated use {@link #buildInsertSql(String, BeanDescFactory, EntityOperator, Object, NameConverter, List)} instead