@@ -2692,6 +2692,23 @@ public void manageTime(boolean manage) {
2692
2692
public String toInsert () {
2693
2693
return toInsert (getMetaModelLocal ().getDialect ());
2694
2694
}
2695
+
2696
+
2697
+ /**
2698
+ * Generates INSERT SQL based on this model with the provided dialect.
2699
+ * Example:
2700
+ * <pre>
2701
+ * String insert = u.toInsert(new MySQLDialect());
2702
+ * //yields this output:
2703
+ * //INSERT INTO users (id, first_name, email, last_name) VALUES (1, 'Marilyn', 'mmonroe@yahoo.com', 'Monroe');
2704
+ * </pre>
2705
+ *
2706
+ * @param dialect dialect to be used to generate the SQL
2707
+ * @return INSERT SQL based on this model.
2708
+ */
2709
+ public String toInsert (Dialect dialect ) {
2710
+ return dialect .insert (getMetaModelLocal (), attributes );
2711
+ }
2695
2712
2696
2713
/**
2697
2714
* Generates UPDATE SQL based on this model. Uses single quotes for all string values.
@@ -2705,70 +2722,24 @@ public String toInsert() {
2705
2722
*
2706
2723
* @return UPDATE SQL based on this model.
2707
2724
*/
2708
- public String toUpdate (){
2709
-
2710
- doUpdatedAt ();
2711
-
2712
- MetaModel metaModel = getMetaModelLocal ();
2713
- StringBuilder query = new StringBuilder ().append ("UPDATE " ).append (metaModel .getTableName ()).append (" SET " );
2714
- SortedSet <String > attributeNames = metaModel .getAttributeNamesSkipGenerated (manageTime );
2715
-
2716
-
2717
-
2718
- List <Object > values = getAttributeValues (attributeNames );
2719
- List <String > attributeNamesList = new ArrayList <String >(attributeNames );
2720
- for (int i = 0 ; i < values .size (); i ++) {
2721
- Object value = values .get (i );
2722
- String attributeName = attributeNamesList .get (i );
2723
- if (value != null ) {
2724
- query .append (attributeName + " = " + "'" + value + "'" );
2725
-
2726
- if (i < values .size () -1 ) {
2727
- query .append (" , " );
2728
- }
2729
- }
2730
- }
2731
-
2732
-
2733
- if (manageTime && metaModel .hasAttribute ("updated_at" )) {
2734
- query .append (", updated_at = ?" );
2735
- values .add (get ("updated_at" ));
2736
- }
2737
-
2738
- if (metaModel .isVersioned ()){
2739
- query .append (", " ).append (getMetaModelLocal ().getVersionColumn ()).append (" = ?" );
2740
- values .add (getLong (getMetaModelLocal ().getVersionColumn ()) + 1 );
2741
- }
2742
- query .append (" WHERE " ).append (metaModel .getIdName ()).append (" = " + getId ());
2743
- values .add (getId ());
2744
-
2745
-
2746
- if (metaModel .isVersioned ()) {
2747
- query .append (" AND " ).append (getMetaModelLocal ().getVersionColumn ()).append (" = ?" );
2748
- values .add (get (getMetaModelLocal ().getVersionColumn ()));
2749
- }
2750
-
2751
- if (metaModel .cached ()){
2752
- QueryCache .instance ().purgeTableCache (metaModel .getTableName ());
2753
- }
2754
- return query .toString ();
2725
+ public String toUpdate () {
2726
+ return toUpdate (getMetaModelLocal ().getDialect ());
2755
2727
}
2756
2728
2757
-
2758
2729
/**
2759
- * Generates INSERT SQL based on this model with the provided dialect .
2730
+ * Generates UPDATE SQL based on this model. Uses single quotes for all string values .
2760
2731
* Example:
2761
2732
* <pre>
2762
- * String insert = u.toInsert(new MySQLDialect());
2733
+ *
2734
+ * String update = u.toUpdate();
2763
2735
* //yields this output:
2764
- * //INSERT INTO users (id, first_name, email, last_name) VALUES (1, 'Marilyn', 'mmonroe@yahoo.com', 'Monroe');
2736
+ * //UPDATE students SET DOB = '1965-12-01' , FIRST_NAME = 'Jim' , LAST_NAME = 'Cary' WHERE id = 1
2765
2737
* </pre>
2766
2738
*
2767
- * @param dialect dialect to be used to generate the SQL
2768
- * @return INSERT SQL based on this model.
2739
+ * @return UPDATE SQL based on this model.
2769
2740
*/
2770
- public String toInsert (Dialect dialect ) {
2771
- return dialect .insert (getMetaModelLocal (), attributes );
2741
+ public String toUpdate (Dialect dialect ) {
2742
+ return dialect .update (getMetaModelLocal (), attributes );
2772
2743
}
2773
2744
2774
2745
/**
0 commit comments