Index: trunk/fmgVen/src/com/fmguler/ven/QueryGenerator.java
===================================================================
--- trunk/fmgVen/src/com/fmguler/ven/QueryGenerator.java	(revision 26)
+++ trunk/fmgVen/src/com/fmguler/ven/QueryGenerator.java	(revision 27)
@@ -27,5 +27,5 @@
 
 /**
- * Generates queries in the form of 'Convention over Configuration' of the specified class.
+ * Generates queries in the form of 'Convention over Configuration' for the specified objects.
  * @author Fatih Mehmet Güler
  */
@@ -53,5 +53,10 @@
     }
 
-    public String generateInsertQuery(Object object) throws VenException {
+    /**
+     * Generates insert query for the specified object
+     * @param object the object to generate insert query for
+     * @return the insert SQL query
+     */
+    public String generateInsertQuery(Object object) {
         BeanWrapper wr = new BeanWrapperImpl(object);
         String objectName = Convert.toSimpleName(object.getClass().getName());
@@ -90,6 +95,7 @@
 
     /**
-     * Generates insert/update query
-     * @return the insert update SQL query
+     * Generates update query for the specified object
+     * @param object the object to generate update query for
+     * @return the update SQL query
      */
     public String generateUpdateQuery(Object object) throws VenException {
@@ -114,8 +120,24 @@
         }
         query.deleteCharAt(query.length() - 1);
-        query.append(" where id = :id ;"); //TODO: remove the last comma
+        query.append(" where id = :id ;");
         return query.toString();
     }
 
+    /**
+     * Generates delete query for the specified object class
+     * @param objectClass the object class to generate query for
+     * @return the delete SQL query
+     */
+    public String generateDeleteQuery(Class objectClass){
+        StringBuffer query = new StringBuffer();
+        query.append("delete from ").append(Convert.toDB(Convert.toSimpleName(objectClass.getName()))).append(" where id = :id;");
+        return query.toString();
+    }
+        
+    /**
+     * Generates sequence query for the specified object
+     * @param object the objectc to generate sequence query for
+     * @return the SQL query to select next id
+     */
     public String generateSequenceQuery(Object object) throws VenException {
         String objectName = Convert.toSimpleName(object.getClass().getName());
Index: trunk/fmgVen/src/com/fmguler/ven/Ven.java
===================================================================
--- trunk/fmgVen/src/com/fmguler/ven/Ven.java	(revision 26)
+++ trunk/fmgVen/src/com/fmguler/ven/Ven.java	(revision 27)
@@ -20,4 +20,5 @@
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import javax.sql.DataSource;
 import org.springframework.beans.BeanWrapper;
@@ -54,5 +55,5 @@
 
     /**
-     * Save the object. If it has a "id" property it will be updated.
+     * Save the object. If it has a non null (or non zero) "id" property it will be updated.
      * It will be inserted otherwise.
      * <p>
@@ -78,5 +79,14 @@
     }
 
+    /**
+     * Delete the the object with the specified id of the specified objectClass type
+     * @param id the id of the object to be deleted
+     * @param objectClass the class of the object to be deleted
+     */
     public void delete(int id, Class objectClass) {
+        String query = generator.generateDeleteQuery(objectClass);
+        Map parameterMap = new HashMap();
+        parameterMap.put("id", new Integer(id));
+        template.update(query, parameterMap);
     }
 
@@ -86,5 +96,5 @@
     private boolean isObjectNew(Object object) throws VenException {
         BeanWrapper beanWrapper = new BeanWrapperImpl(object);
-        Object objectId = beanWrapper.getPropertyValue("id"); 
+        Object objectId = beanWrapper.getPropertyValue("id");
         if (objectId == null) return true;
         if (!(objectId instanceof Integer)) throw new VenException(VenException.EC_GENERATOR_OBJECT_ID_TYPE_INVALID);
