2 Commits

Author SHA1 Message Date
Willy-J
1fab04aeb1 Merge 44baeb9828 into 0721df2e66 2025-06-15 23:24:14 +08:00
Willy-J
44baeb9828 (fix)(headless) preserve model join order by using LinkedHashSet in probeRelatedModels 2025-06-13 10:49:30 +08:00

View File

@@ -88,7 +88,7 @@ public class SqlBuilder {
GraphPath<String, DefaultEdge> selectedGraphPath = null;
for (String fromModel : queryModels) {
for (String toModel : queryModels) {
if (fromModel != toModel) {
if (!fromModel.equals(toModel)) {
GraphPath<String, DefaultEdge> path = dijkstraAlg.getPath(fromModel, toModel);
if (isGraphPathContainsAll(path, queryModels)) {
selectedGraphPath = path;
@@ -100,13 +100,13 @@ public class SqlBuilder {
if (selectedGraphPath == null) {
return dataModels;
}
Set<String> modelNames = Sets.newHashSet();
Set<String> modelNames = Sets.newLinkedHashSet();
for (DefaultEdge edge : selectedGraphPath.getEdgeList()) {
modelNames.add(selectedGraphPath.getGraph().getEdgeSource(edge));
modelNames.add(selectedGraphPath.getGraph().getEdgeTarget(edge));
}
return modelNames.stream().map(m -> ontology.getModelMap().get(m))
.collect(Collectors.toSet());
.collect(Collectors.toCollection(LinkedHashSet::new));
}
private boolean isGraphPathContainsAll(GraphPath<String, DefaultEdge> graphPath,