private Object getPrimaryKeyValue(Class<?> entityType, T entity) {
        Object value = null;
        Field[] fields = entityType.getDeclaredFields();
        if (fields == null || fields.length == 0) {
            return value;
        }

        try {
            for (Field field : fields) {
                Column column = field.getAnnotation(Column.class);
                if (column == null || !column.isPrimaryKey()) {
                    continue;
                }
                field.setAccessible(true);
                value = field.get(entity);
                break;
            }
        } catch (IllegalAccessException ex) {
            throw new RuntimeException(ex);
        }

        return value;
    }