diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java index d3e452571..bbe67279e 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/tool/schema/internal/AbstractSchemaMigrator.java @@ -362,7 +362,9 @@ public abstract class AbstractSchemaMigrator implements SchemaMigrator { Set identifiers = getUniqueKeyIdentifiers(table); if (tableInfo != null) { for (IndexInformation indexInfo : tableInfo.getIndexes()) { - if (!indexInfo.isUnique() || indexInfo.getIndexIdentifier().equals(tableInfo.getPrimaryKey().getPrimaryKeyIdentifier())) { + PrimaryKeyInformation primaryKey = tableInfo.getPrimaryKey(); + //主键不存在时npe处理 + if (!indexInfo.isUnique() || (primaryKey != null && indexInfo.getIndexIdentifier().equals(primaryKey.getPrimaryKeyIdentifier()))) { continue; } //如果旧的唯一键已经不存在, 则删除