Skip to content

Instantly share code, notes, and snippets.

@ngs
Created December 14, 2010 20:52
Show Gist options
  • Select an option

  • Save ngs/741087 to your computer and use it in GitHub Desktop.

Select an option

Save ngs/741087 to your computer and use it in GitHub Desktop.
ActiveRecordBase.java patch
diff --git a/src/org/kroz/activerecord/ActiveRecordBase.java b/src/org/kroz/activerecord/ActiveRecordBase.java
index ebb2ddf..2e32b18 100644
--- a/src/org/kroz/activerecord/ActiveRecordBase.java
+++ b/src/org/kroz/activerecord/ActiveRecordBase.java
@@ -204,12 +204,10 @@ public class ActiveRecordBase {
* @return An array of fields for this class.
*/
protected List<Field> getColumnFieldsWithoutID() {
- Field[] fields = getClass().getDeclaredFields();
- List<Field> columns = new ArrayList<Field>();
- for (Field field : fields) {
- if (!field.getName().startsWith("m_")
- && !field.getName().startsWith("s_"))
- columns.add(field);
+ List<Field> columns = this.getColumnFields();
+ for (Field field : columns) {
+ if (field.getName().equals("_id"))
+ columns.remove(field);
}
return columns;
}
@@ -220,22 +218,17 @@ public class ActiveRecordBase {
* @return An array of fields for this class.
*/
protected List<Field> getColumnFields() {
- Field[] fields = getClass().getDeclaredFields();
List<Field> columns = new ArrayList<Field>();
- for (Field field : fields) {
- if (!field.getName().startsWith("m_")
- && !field.getName().startsWith("s_")) {
- columns.add(field);
- }
- }
- if (!getClass().equals(ActiveRecordBase.class)) {
- fields = ActiveRecordBase.class.getDeclaredFields();
+ Class<?> klass = this.getClass();
+ while (!klass.equals(Object.class)) {
+ Field[] fields = klass.getDeclaredFields();
for (Field field : fields) {
if (!field.getName().startsWith("m_")
&& !field.getName().startsWith("s_")) {
columns.add(field);
}
}
+ klass = klass.getSuperclass();
}
return columns;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment