List of usage examples for org.apache.ibatis.session Configuration getCacheNames
public Collection<String> getCacheNames()
From source file:com.sxj.mybatis.orm.builder.GenericStatementBuilder.java
License:Open Source License
public GenericStatementBuilder(Configuration configuration, final Class<?> entityClass) { super(configuration); this.entityClass = entityClass; sharded = ConfigurationProperties.isSharded(configuration); String resource = entityClass.getName().replace('.', '/') + ".java (best guess)"; assistant = new MapperBuilderAssistant(configuration, resource); entity = entityClass.getAnnotation(Entity.class); mapperType = entity.mapper();/*from w ww .jav a 2 s . co m*/ if (!mapperType.isAssignableFrom(Void.class)) { namespace = mapperType.getName(); } else { namespace = entityClass.getName(); } assistant.setCurrentNamespace(namespace); Collection<String> cacheNames = configuration.getCacheNames(); for (String name : cacheNames) if (namespace.equals(name)) { assistant.useCacheRef(name); break; } databaseId = super.getConfiguration().getDatabaseId(); lang = super.getConfiguration().getDefaultScriptingLanuageInstance(); //~~~~~~~~~~~~~~~~~~~~~~~~~~~ Table table = entityClass.getAnnotation(Table.class); if (table == null) { tableName = CaseFormatUtils.camelToUnderScore(entityClass.getSimpleName()); } else { tableName = table.name(); } ///~~~~~~~~~~~~~~~~~~~~~~ idField = AnnotationUtils.findDeclaredFieldWithAnnoation(Id.class, entityClass); if (!sharded && (this.idField.isAnnotationPresent(GeneratedValue.class)) && (((GeneratedValue) this.idField.getAnnotation(GeneratedValue.class)) .strategy() == GenerationType.UUID)) columnFields.add(idField); else columnFields.add(idField); versionField = AnnotationUtils.findDeclaredFieldWithAnnoation(Version.class, entityClass); ReflectionUtils.doWithFields(entityClass, new FieldCallback() { public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException { if (field.isAnnotationPresent(Column.class)) columnFields.add(field); if (field.isAnnotationPresent(Sn.class)) containSn = true; } }, new FieldFilter() { public boolean matches(Field field) { if (Modifier.isStatic(field.getModifiers()) || Modifier.isFinal(field.getModifiers())) { return false; } for (Annotation annotation : field.getAnnotations()) { if (Transient.class.isAssignableFrom(annotation.getClass()) || Id.class.isAssignableFrom(annotation.getClass())) { return false; } } return true; } }); }