private List<String> generaCacheKey(Object obj) {
		ORMTable ormTable = obj.getClass().getAnnotation(ORMTable.class);
		if (ormTable != null) {
			String cachedTableKey = "".equalsIgnoreCase(ormTable.cachedShortAlias()) ? ormTable.tableName() : ormTable.cachedShortAlias();
			String[] cachedKeys = ormTable.cachedKey();
			
			if (cachedKeys.length > 0) {
				List<String> ks = new ArrayList<String>();
				for (int i = 0; i < cachedKeys.length; i++) {
					String cachedCol = cachedKeys[i];
					String[] fk = cachedCol.split("=");
					try {
						Field f = obj.getClass().getDeclaredField(fk[0]);
						f.setAccessible(true);
						ks.add(cachedTableKey + "." + fk[1] + "." + f.get(obj));	// 表别名 + key别名 + key值
					} catch (NoSuchFieldException e) {
						logger.warn("NoSuchFieldException:{};", cachedCol, e);
						continue;
					} catch (SecurityException e) {
						logger.warn("SecurityException:{};", cachedCol, e);
						continue;
					} catch (IllegalArgumentException e) {
						logger.warn("Get field value fail:{};", cachedCol, e);
						continue;
					} catch (IllegalAccessException e) {
						logger.warn("Get field value fail:{};", cachedCol, e);
						continue;
					}
				}
				return ks;
			} else {
				return null;
			}
		} else {
			return null;
		}
	}