diff --git a/src/main/java/ru/mcs/metadatabook/entity/MtData.java b/src/main/java/ru/mcs/metadatabook/entity/MtData.java index ee7ec9d..c50053b 100644 --- a/src/main/java/ru/mcs/metadatabook/entity/MtData.java +++ b/src/main/java/ru/mcs/metadatabook/entity/MtData.java @@ -39,7 +39,7 @@ @Column(name = "obj_id", nullable = false) private Integer objId; - @Column(name = "name") + @Column(name = "name", length = 1000) private String name; @Column(name = "value0", length = 4000) private String value0; diff --git a/src/main/java/ru/mcs/metadatabook/service/BookWriteService.java b/src/main/java/ru/mcs/metadatabook/service/BookWriteService.java index 2e5d8a1..f7c6cb9 100644 --- a/src/main/java/ru/mcs/metadatabook/service/BookWriteService.java +++ b/src/main/java/ru/mcs/metadatabook/service/BookWriteService.java @@ -43,7 +43,7 @@ applyValues(data, values, fieldMap, source, confidence); String title = values.get("Title") != null ? values.get("Title") : values.get("title"); - data.setName(title); + data.setName(title != null && title.length() > 1000 ? title.substring(0, 1000) : title); MtData saved = dataRepository.save(data); diff --git a/src/main/resources/db/migration/V9__widen_mtdata_name.sql b/src/main/resources/db/migration/V9__widen_mtdata_name.sql new file mode 100644 index 0000000..007697e --- /dev/null +++ b/src/main/resources/db/migration/V9__widen_mtdata_name.sql @@ -0,0 +1,8 @@ +-- V9__widen_mtdata_name.sql +-- Колонка mt_data.name (денормализованное отображаемое имя записи, используется +-- для листингов/отладки) была объявлена VARCHAR(255) ещё в V2, хотя поле Title +-- в mt_fields официально допускает до 1000 символов (см. V3__book_domain_metadata.sql). +-- Длинные академические/библиотечные заглавия (монографии, сборники, диссертации) +-- легко превышают 255 символов и валили весь batch insert с +-- "value too long for type character varying(255)". +ALTER TABLE mt_data ALTER COLUMN name TYPE VARCHAR(1000); \ No newline at end of file