manager.setName(options.containsKey("name") ? (String) options.get("name") : cls.getSimpleName());
manager.setTableName(tableName);
manager.setCacheEnabled(cacheEnabled);
// init fields and properties
LinkedHashMap<String, Field> fields = new LinkedHashMap<String, Field>();
fields.put(SelfField.DEFAULT_NAME, new SelfField(cls));
fields.putAll(collectFields(cls));
fields.putAll(collectProperties(cls));
fields.put("verbose", new ModelProperty("getVerbose", String.class, map("verbose", manager.getName())));
Field pkField = getPrimaryKey(fields);
if (pkField == null) {