update the get relations code since info stored by version instead of dataset

This commit is contained in:
jbai 2016-07-21 16:21:46 -07:00
parent 7a77aba4b7
commit bafb45f3b1
2 changed files with 48 additions and 12 deletions

View File

@ -755,7 +755,7 @@ public class Dataset extends Controller
{
ObjectNode result = Json.newObject();
List<DatasetDependency> depends = new ArrayList<DatasetDependency>();
DatasetsDAO.getDatasetDependencies(datasetId, 1, 0, depends);
DatasetsDAO.getDependencies(datasetId, depends);
result.put("status", "ok");
result.put("depends", Json.toJson(depends));
return ok(result);
@ -765,7 +765,7 @@ public class Dataset extends Controller
{
ObjectNode result = Json.newObject();
List<DatasetDependency> references = new ArrayList<DatasetDependency>();
DatasetsDAO.getDatasetReferences(datasetId, 1, 0, references);
DatasetsDAO.getReferences(datasetId, references);
result.put("status", "ok");
result.put("references", Json.toJson(references));
return ok(result);

View File

@ -320,12 +320,12 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
private final static String GET_DATASET_DEPENDS_VIEW = "SELECT object_type, object_sub_type, " +
"object_name, map_phrase, is_identical_map, mapped_object_dataset_id, " +
"mapped_object_type, mapped_object_sub_type, mapped_object_name " +
"FROM cfg_object_name_map WHERE object_dataset_id = ?";
"FROM cfg_object_name_map WHERE object_name = ?";
private final static String GET_DATASET_REFERENCES = "SELECT object_type, object_sub_type, " +
"object_name, object_dataset_id, map_phrase, is_identical_map, mapped_object_dataset_id, " +
"mapped_object_type, mapped_object_sub_type, mapped_object_name " +
"FROM cfg_object_name_map WHERE mapped_object_dataset_id = ?";
"FROM cfg_object_name_map WHERE mapped_object_name = ?";
private final static String GET_DATASET_LISTVIEW_TOP_LEVEL_NODES = "SELECT DISTINCT " +
"SUBSTRING_INDEX(urn, ':///', 1) as name, 0 as id, " +
@ -338,8 +338,11 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
"ON s.urn = concat(?, SUBSTRING_INDEX(SUBSTRING_INDEX(d.urn, ?, -1), '/', 1)) " +
"WHERE d.urn LIKE ? ORDER BY d.name";
private final static String GET_DATASET_VERSIONS = "SELECT version " +
"FROM dict_dataset_instance WHERE dataset_id = ? and version != '0' ORDER BY version_sort_id";
private final static String GET_DATASET_VERSIONS = "SELECT DISTINCT version " +
"FROM dict_dataset_instance WHERE dataset_id = ? and version != '0' ORDER BY version_sort_id DESC";
private final static String GET_DATASET_NATIVE_NAME = "SELECT native_name " +
"FROM dict_dataset_instance WHERE dataset_id = ? ORDER BY version_sort_id DESC limit 1";
public static List<String> getDatasetOwnerTypes()
{
@ -1751,8 +1754,41 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
return result;
}
public static void getDatasetDependencies(
public static void getDependencies(
Long datasetId,
List<DatasetDependency> depends)
{
String nativeName = getJdbcTemplate().queryForObject(
GET_DATASET_NATIVE_NAME,
String.class,
datasetId);
if (StringUtils.isNotBlank(nativeName))
{
getDatasetDependencies("/" + nativeName.replace(".", "/"), 1, 0, depends);
}
}
public static void getReferences(
Long datasetId,
List<DatasetDependency> references)
{
String nativeName = getJdbcTemplate().queryForObject(
GET_DATASET_NATIVE_NAME,
String.class,
datasetId);
if (StringUtils.isNotBlank(nativeName))
{
getDatasetReferences("/" + nativeName.replace(".", "/"), 1, 0, references);
}
}
public static void getDatasetDependencies(
String objectName,
int level,
int parent,
List<DatasetDependency> depends)
@ -1765,7 +1801,7 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
List<Map<String, Object>> rows = null;
rows = getJdbcTemplate().queryForList(
GET_DATASET_DEPENDS_VIEW,
datasetId);
objectName);
if (rows != null)
{
@ -1792,13 +1828,13 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
dd.treeGridClass += " treegrid-parent-" + Integer.toString(parent);
}
depends.add(dd);
getDatasetDependencies(dd.datasetId, level + 1, dd.sortId, depends);
getDatasetDependencies(dd.objectName, level + 1, dd.sortId, depends);
}
}
}
public static void getDatasetReferences(
Long datasetId,
String objectName,
int level,
int parent,
List<DatasetDependency> references)
@ -1811,7 +1847,7 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
List<Map<String, Object>> rows = null;
rows = getJdbcTemplate().queryForList(
GET_DATASET_REFERENCES,
datasetId);
objectName);
if (rows != null)
{
@ -1838,7 +1874,7 @@ public class DatasetsDAO extends AbstractMySQLOpenSourceDAO
dd.treeGridClass += " treegrid-parent-" + Integer.toString(parent);
}
references.add(dd);
getDatasetReferences(dd.datasetId, level + 1, dd.sortId, references);
getDatasetReferences(dd.objectName, level + 1, dd.sortId, references);
}
}
}