diff --git a/src/net/sourceforge/schemaspy/DbAnalyzer.java b/src/net/sourceforge/schemaspy/DbAnalyzer.java index 3c31a8f..169ba0f 100644 --- a/src/net/sourceforge/schemaspy/DbAnalyzer.java +++ b/src/net/sourceforge/schemaspy/DbAnalyzer.java @@ -36,7 +36,7 @@ public int compare(Object object1, Object object2) { for (Iterator columnIter = table.getColumns().iterator(); columnIter.hasNext(); ) { TableColumn column = (TableColumn)columnIter.next(); - if (column.getParents().isEmpty()) + if (!column.isForeignKey()) columnsWithoutParents.add(column); } } diff --git a/src/net/sourceforge/schemaspy/model/Table.java b/src/net/sourceforge/schemaspy/model/Table.java index 7611157..9a19585 100755 --- a/src/net/sourceforge/schemaspy/model/Table.java +++ b/src/net/sourceforge/schemaspy/model/Table.java @@ -410,7 +410,7 @@ public void unlinkParents() { public boolean isRoot() { for (Iterator iter = columns.values().iterator(); iter.hasNext(); ) { TableColumn column = (TableColumn)iter.next(); - if (!column.getParents().isEmpty()) { + if (column.isForeignKey()) { return false; } } diff --git a/src/net/sourceforge/schemaspy/model/TableColumn.java b/src/net/sourceforge/schemaspy/model/TableColumn.java index fd2a127..14c9238 100755 --- a/src/net/sourceforge/schemaspy/model/TableColumn.java +++ b/src/net/sourceforge/schemaspy/model/TableColumn.java @@ -105,6 +105,14 @@ public boolean isUnique() { public boolean isPrimary() { return table.getPrimaryColumns().contains(this); } + + /** + * Returns true if this column points to another table's primary key. + * @return + */ + public boolean isForeignKey() { + return !parents.isEmpty(); + } public Object getDefaultValue() { return defaultValue;