From 6a3c5fe3114f488ac02cd21ee39f4ab372d2ccbc Mon Sep 17 00:00:00 2001 From: vran Date: Mon, 7 Mar 2022 23:13:30 +0800 Subject: [PATCH] refactor: redesign document history model --- .../com/databasir/api/DocumentController.java | 15 +- .../main/java/com/databasir/api/Routes.java | 4 + .../DocumentHistoryPojoConverter.java | 20 -- .../converter/DocumentPojoConverter.java | 7 +- .../DocumentSimpleResponseConverter.java | 21 ++ .../data/DatabaseDocumentSimpleResponse.java | 38 +++ .../data/DatabaseDocumentVersionResponse.java | 2 + .../document/service/DocumentService.java | 168 +++++----- .../group/converter/GroupPojoConverter.java | 8 + .../java/com/databasir/dao/Databasir.java | 7 - .../main/java/com/databasir/dao/Indexes.java | 4 +- .../main/java/com/databasir/dao/Keys.java | 5 - .../main/java/com/databasir/dao/Tables.java | 6 - .../dao/tables/DatabaseDocument.java | 24 +- .../dao/tables/DatabaseDocumentHistory.java | 182 ---------- .../pojos/DatabaseDocumentHistoryPojo.java | 157 --------- .../tables/pojos/DatabaseDocumentPojo.java | 40 +-- .../DatabaseDocumentHistoryRecord.java | 316 ------------------ .../records/DatabaseDocumentRecord.java | 130 +++---- .../dao/impl/DatabaseDocumentDao.java | 50 +++ .../dao/impl/DatabaseDocumentHistoryDao.java | 59 ---- .../value/DatabaseDocumentVersionPojo.java | 2 +- .../main/resources/db/migration/V1__init.sql | 14 +- 23 files changed, 331 insertions(+), 948 deletions(-) delete mode 100644 core/src/main/java/com/databasir/core/domain/document/converter/DocumentHistoryPojoConverter.java create mode 100644 core/src/main/java/com/databasir/core/domain/document/converter/DocumentSimpleResponseConverter.java create mode 100644 core/src/main/java/com/databasir/core/domain/document/data/DatabaseDocumentSimpleResponse.java delete mode 100644 dao/generated-src/jooq/main/java/com/databasir/dao/tables/DatabaseDocumentHistory.java delete mode 100644 dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/DatabaseDocumentHistoryPojo.java delete mode 100644 dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/DatabaseDocumentHistoryRecord.java delete mode 100644 dao/src/main/java/com/databasir/dao/impl/DatabaseDocumentHistoryDao.java diff --git a/api/src/main/java/com/databasir/api/DocumentController.java b/api/src/main/java/com/databasir/api/DocumentController.java index 665a327..f5ddd91 100644 --- a/api/src/main/java/com/databasir/api/DocumentController.java +++ b/api/src/main/java/com/databasir/api/DocumentController.java @@ -3,6 +3,7 @@ package com.databasir.api; import com.databasir.common.JsonData; import com.databasir.common.SystemException; import com.databasir.core.domain.document.data.DatabaseDocumentResponse; +import com.databasir.core.domain.document.data.DatabaseDocumentSimpleResponse; import com.databasir.core.domain.document.data.DatabaseDocumentVersionResponse; import com.databasir.core.domain.document.service.DocumentService; import com.databasir.core.domain.log.annotation.Operation; @@ -54,7 +55,7 @@ public class DocumentController { @PageableDefault(sort = "id", direction = DESC) Pageable page) { - return JsonData.ok(documentService.getVersionsBySchemaSourceId(projectId, page)); + return JsonData.ok(documentService.getVersionsByProjectId(projectId, page)); } @GetMapping(Routes.Document.EXPORT) @@ -79,4 +80,16 @@ public class DocumentController { } } + @GetMapping(Routes.Document.GET_SIMPLE_ONE) + public JsonData getSimpleByProjectId(@PathVariable Integer projectId, + @RequestParam(required = false) Long version) { + return JsonData.ok(documentService.getSimpleOneByProjectId(projectId, version)); + } + + @GetMapping(Routes.Document.GET_TABLE_DETAIL) + public JsonData getTableDocument(@PathVariable Integer projectId, + @PathVariable Integer tableId) { + return JsonData.ok(documentService.getTableDetails(projectId, tableId)); + } + } diff --git a/api/src/main/java/com/databasir/api/Routes.java b/api/src/main/java/com/databasir/api/Routes.java index 84ec980..bf24414 100644 --- a/api/src/main/java/com/databasir/api/Routes.java +++ b/api/src/main/java/com/databasir/api/Routes.java @@ -78,6 +78,10 @@ public interface Routes { String LIST_VERSIONS = BASE + "/projects/{projectId}/document_versions"; + String GET_SIMPLE_ONE = BASE + "/projects/{projectId}/documents/simple"; + + String GET_TABLE_DETAIL = BASE + "/projects/{projectId}/table_documents/{tableId}"; + String EXPORT = BASE + "/projects/{projectId}/document_files"; } diff --git a/core/src/main/java/com/databasir/core/domain/document/converter/DocumentHistoryPojoConverter.java b/core/src/main/java/com/databasir/core/domain/document/converter/DocumentHistoryPojoConverter.java deleted file mode 100644 index ca60d4a..0000000 --- a/core/src/main/java/com/databasir/core/domain/document/converter/DocumentHistoryPojoConverter.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.databasir.core.domain.document.converter; - -import com.databasir.core.domain.document.data.DatabaseDocumentResponse; -import com.databasir.core.infrastructure.converter.JsonConverter; -import com.databasir.dao.tables.pojos.DatabaseDocumentHistoryPojo; -import org.mapstruct.Mapper; -import org.mapstruct.Mapping; -import org.mapstruct.ReportingPolicy; - -@Mapper(componentModel = "spring", uses = JsonConverter.class, unmappedTargetPolicy = ReportingPolicy.IGNORE) -public interface DocumentHistoryPojoConverter { - - @Mapping(target = "databaseDocumentObject", source = "databaseMetaObject") - @Mapping(target = "id", ignore = true) - @Mapping(target = "createAt", ignore = true) - DatabaseDocumentHistoryPojo of(DatabaseDocumentResponse databaseMetaObject, - Integer projectId, - Integer databaseDocumentId, - Long version); -} diff --git a/core/src/main/java/com/databasir/core/domain/document/converter/DocumentPojoConverter.java b/core/src/main/java/com/databasir/core/domain/document/converter/DocumentPojoConverter.java index 54d38ff..fac7df8 100644 --- a/core/src/main/java/com/databasir/core/domain/document/converter/DocumentPojoConverter.java +++ b/core/src/main/java/com/databasir/core/domain/document/converter/DocumentPojoConverter.java @@ -16,16 +16,11 @@ import java.util.stream.Collectors; public interface DocumentPojoConverter extends BaseConverter { @Mapping(target = "databaseName", source = "meta.databaseName") + @Mapping(target = "isArchive", constant = "false") DatabaseDocumentPojo toDatabasePojo(Integer projectId, com.databasir.core.meta.data.DatabaseMeta meta, Long version); - @Mapping(target = "databaseName", source = "meta.databaseName") - DatabaseDocumentPojo toDatabasePojo(Integer projectId, - com.databasir.core.meta.data.DatabaseMeta meta, - Integer id, - Long version); - @Mapping(target = "comment", qualifiedBy = NullToEmpty.class) TableDocumentPojo toTablePojo(Integer databaseDocumentId, com.databasir.core.meta.data.TableMeta meta); diff --git a/core/src/main/java/com/databasir/core/domain/document/converter/DocumentSimpleResponseConverter.java b/core/src/main/java/com/databasir/core/domain/document/converter/DocumentSimpleResponseConverter.java new file mode 100644 index 0000000..4fd90e7 --- /dev/null +++ b/core/src/main/java/com/databasir/core/domain/document/converter/DocumentSimpleResponseConverter.java @@ -0,0 +1,21 @@ +package com.databasir.core.domain.document.converter; + +import com.databasir.core.domain.document.data.DatabaseDocumentSimpleResponse; +import com.databasir.core.infrastructure.converter.JsonConverter; +import com.databasir.dao.tables.pojos.DatabaseDocumentPojo; +import com.databasir.dao.tables.pojos.TableDocumentPojo; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.ReportingPolicy; + +import java.util.List; + +@Mapper(componentModel = "spring", uses = JsonConverter.class, unmappedTargetPolicy = ReportingPolicy.WARN) +public interface DocumentSimpleResponseConverter { + + @Mapping(target = "id", source = "databaseDocument.id") + @Mapping(target = "createAt", source = "databaseDocument.createAt") + @Mapping(target = "documentVersion", source = "databaseDocument.version") + DatabaseDocumentSimpleResponse of(DatabaseDocumentPojo databaseDocument, + List tables); +} diff --git a/core/src/main/java/com/databasir/core/domain/document/data/DatabaseDocumentSimpleResponse.java b/core/src/main/java/com/databasir/core/domain/document/data/DatabaseDocumentSimpleResponse.java new file mode 100644 index 0000000..8701da5 --- /dev/null +++ b/core/src/main/java/com/databasir/core/domain/document/data/DatabaseDocumentSimpleResponse.java @@ -0,0 +1,38 @@ +package com.databasir.core.domain.document.data; + +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +@Data +public class DatabaseDocumentSimpleResponse { + + private Integer id; + + private String databaseName; + + private String productName; + + private String productVersion; + + private Integer documentVersion; + + private List tables = new ArrayList<>(); + + private LocalDateTime createAt; + + + @Data + public static class TableData { + + private Integer id; + + private String name; + + private String type; + + private String comment; + } +} diff --git a/core/src/main/java/com/databasir/core/domain/document/data/DatabaseDocumentVersionResponse.java b/core/src/main/java/com/databasir/core/domain/document/data/DatabaseDocumentVersionResponse.java index a148f38..352f53c 100644 --- a/core/src/main/java/com/databasir/core/domain/document/data/DatabaseDocumentVersionResponse.java +++ b/core/src/main/java/com/databasir/core/domain/document/data/DatabaseDocumentVersionResponse.java @@ -13,6 +13,8 @@ import java.time.LocalDateTime; @Builder public class DatabaseDocumentVersionResponse { + private Integer databaseDocumentId; + private Long version; private LocalDateTime createAt; diff --git a/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java b/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java index 9c42979..ee0de32 100644 --- a/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java +++ b/core/src/main/java/com/databasir/core/domain/document/service/DocumentService.java @@ -3,10 +3,11 @@ package com.databasir.core.domain.document.service; import com.databasir.core.Databasir; import com.databasir.core.DatabasirConfig; import com.databasir.core.domain.DomainErrors; -import com.databasir.core.domain.document.converter.DocumentHistoryPojoConverter; import com.databasir.core.domain.document.converter.DocumentPojoConverter; import com.databasir.core.domain.document.converter.DocumentResponseConverter; +import com.databasir.core.domain.document.converter.DocumentSimpleResponseConverter; import com.databasir.core.domain.document.data.DatabaseDocumentResponse; +import com.databasir.core.domain.document.data.DatabaseDocumentSimpleResponse; import com.databasir.core.domain.document.data.DatabaseDocumentVersionResponse; import com.databasir.core.infrastructure.connection.DatabaseConnectionService; import com.databasir.core.infrastructure.converter.JsonConverter; @@ -53,30 +54,28 @@ public class DocumentService { private final TableTriggerDocumentDao tableTriggerDocumentDao; - private final DatabaseDocumentHistoryDao databaseDocumentHistoryDao; - private final DocumentPojoConverter documentPojoConverter; private final DocumentResponseConverter documentResponseConverter; - private final DocumentHistoryPojoConverter documentHistoryPojoConverter; + private final DocumentSimpleResponseConverter documentSimpleResponseConverter; private final JsonConverter jsonConverter; @Transactional public void syncByProjectId(Integer projectId) { - ProjectPojo project = projectDao.selectOptionalById(projectId) + projectDao.selectOptionalById(projectId) .orElseThrow(DomainErrors.PROJECT_NOT_FOUND::exception); DatabaseMeta meta = retrieveDatabaseMeta(projectId); - Optional historyDocumentOpt = databaseDocumentDao.selectOptionalByProjectId(projectId); - if (historyDocumentOpt.isPresent()) { - DatabaseDocumentPojo historyDocument = historyDocumentOpt.get(); - Integer previousDocumentId = historyDocument.getId(); - saveAsHistory(historyDocument); - deleteDeprecatedDocument(previousDocumentId); - saveNewDocument(meta, historyDocument.getVersion() + 1, historyDocument.getProjectId(), previousDocumentId); + Optional latestDocumentOpt = databaseDocumentDao.selectNotArchivedByProjectId(projectId); + if (latestDocumentOpt.isPresent()) { + DatabaseDocumentPojo latestDocument = latestDocumentOpt.get(); + Integer previousDocumentId = latestDocument.getId(); + // archive old version + databaseDocumentDao.updateIsArchiveById(previousDocumentId, true); + saveNewDocument(meta, latestDocument.getVersion() + 1, latestDocument.getProjectId()); } else { - saveNewDocument(meta, 1L, projectId, null); + saveNewDocument(meta, 1L, projectId); } } @@ -93,42 +92,12 @@ public class DocumentService { .orElseThrow(DomainErrors.DATABASE_META_NOT_FOUND::exception); } - private void saveAsHistory(DatabaseDocumentPojo databaseDocument) { - // save history - Integer projectId = databaseDocument.getProjectId(); - Integer databaseMetaId = databaseDocument.getId(); - DatabaseDocumentResponse databaseDocumentResponse = getOneByProjectId(projectId, null).orElse(null); - Long currVersion = databaseDocument.getVersion(); - DatabaseDocumentHistoryPojo documentHistoryPojo = - documentHistoryPojoConverter.of(databaseDocumentResponse, projectId, databaseMetaId, currVersion); - databaseDocumentHistoryDao.insertAndReturnId(documentHistoryPojo); - log.info("save old meta info to history success"); - } - - private void deleteDeprecatedDocument(Integer databaseDocumentId) { - // delete old meta info - tableDocumentDao.deleteByDatabaseDocumentId(databaseDocumentId); - tableColumnDocumentDao.deleteByDatabaseDocumentId(databaseDocumentId); - tableIndexDocumentDao.deleteByDatabaseMetaId(databaseDocumentId); - tableTriggerDocumentDao.deleteByDatabaseDocumentId(databaseDocumentId); - log.info("delete old meta info success"); - } - private void saveNewDocument(DatabaseMeta meta, Long version, - Integer projectId, - Integer databaseDocumentId) { + Integer projectId) { - Integer currentDatabaseDocumentId = databaseDocumentId; - if (databaseDocumentId == null) { - var pojo = documentPojoConverter.toDatabasePojo(projectId, meta, 1L); - currentDatabaseDocumentId = databaseDocumentDao.insertAndReturnId(pojo); - } else { - var pojo = documentPojoConverter.toDatabasePojo(projectId, meta, databaseDocumentId, version); - databaseDocumentDao.update(pojo); - } - - final Integer docId = currentDatabaseDocumentId; + var pojo = documentPojoConverter.toDatabasePojo(projectId, meta, version); + final Integer docId = databaseDocumentDao.insertAndReturnId(pojo); meta.getTables().forEach(table -> { TableDocumentPojo tableMeta = documentPojoConverter.toTablePojo(docId, table); @@ -143,55 +112,100 @@ public class DocumentService { documentPojoConverter.toTriggerPojo(docId, tableMetaId, table.getTriggers()); tableTriggerDocumentDao.batchInsert(tableTriggerMetas); }); - log.info("save new meta info success"); + log.info("save new version document success: projectId = {}, name = {}, version = {}", + projectId, meta.getDatabaseName(), version); } - public Optional getOneByProjectId(Integer projectId, Long version) { + public Optional getSimpleOneByProjectId(Integer projectId, Long version) { if (version == null) { - return databaseDocumentDao.selectOptionalByProjectId(projectId) + return databaseDocumentDao.selectNotArchivedByProjectId(projectId) .map(document -> { Integer id = document.getId(); var tables = tableDocumentDao.selectByDatabaseDocumentId(id); - var columns = tableColumnDocumentDao.selectByDatabaseDocumentId(id); - var indexes = tableIndexDocumentDao.selectByDatabaseMetaId(id); - var triggers = tableTriggerDocumentDao.selectByDatabaseDocumentId(id); - Map> columnsGroupByTableMetaId = columns.stream() - .collect(Collectors.groupingBy(TableColumnDocumentPojo::getTableDocumentId)); - Map> indexesGroupByTableMetaId = indexes.stream() - .collect(Collectors.groupingBy(TableIndexDocumentPojo::getTableDocumentId)); - Map> triggersGroupByTableMetaId = triggers.stream() - .collect(Collectors.groupingBy(TableTriggerDocumentPojo::getTableDocumentId)); - var tableDocumentResponseList = tables.stream() - .map(table -> { - Integer tableId = table.getId(); - var subColumns = - columnsGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); - var subIndexes = - indexesGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); - var subTriggers = - triggersGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); - return documentResponseConverter.of(table, subColumns, subIndexes, subTriggers); - }) - .collect(Collectors.toList()); - return documentResponseConverter.of(document, tableDocumentResponseList); + return documentSimpleResponseConverter.of(document, tables); }); } else { - return databaseDocumentHistoryDao.selectOptionalByProjectIdAndVersion(projectId, version) - .map(obj -> jsonConverter.of(obj.getDatabaseDocumentObject())); + return databaseDocumentDao.selectOptionalByProjectIdAndVersion(projectId, version) + .map(document -> { + Integer id = document.getId(); + var tables = tableDocumentDao.selectByDatabaseDocumentId(id); + return documentSimpleResponseConverter.of(document, tables); + }); } } - public Page getVersionsBySchemaSourceId(Integer projectId, Pageable page) { - return databaseDocumentDao.selectOptionalByProjectId(projectId) - .map(schemaMeta -> - databaseDocumentHistoryDao.selectVersionPageByDatabaseDocumentId(page, schemaMeta.getId()) + public Optional getOneByProjectId(Integer projectId, Long version) { + + Optional documentOption; + if (version == null) { + documentOption = databaseDocumentDao.selectNotArchivedByProjectId(projectId); + } else { + documentOption = databaseDocumentDao.selectOptionalByProjectIdAndVersion(projectId, version); + } + return documentOption.map(document -> { + Integer id = document.getId(); + var tables = tableDocumentDao.selectByDatabaseDocumentId(id); + var columns = tableColumnDocumentDao.selectByDatabaseDocumentId(id); + var indexes = tableIndexDocumentDao.selectByDatabaseMetaId(id); + var triggers = tableTriggerDocumentDao.selectByDatabaseDocumentId(id); + Map> columnsGroupByTableMetaId = columns.stream() + .collect(Collectors.groupingBy(TableColumnDocumentPojo::getTableDocumentId)); + Map> indexesGroupByTableMetaId = indexes.stream() + .collect(Collectors.groupingBy(TableIndexDocumentPojo::getTableDocumentId)); + Map> triggersGroupByTableMetaId = triggers.stream() + .collect(Collectors.groupingBy(TableTriggerDocumentPojo::getTableDocumentId)); + var tableDocumentResponseList = tables.stream() + .map(table -> { + Integer tableId = table.getId(); + var subColumns = columnsGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); + var subIndexes = indexesGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); + var subTriggers = triggersGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); + return documentResponseConverter.of(table, subColumns, subIndexes, subTriggers); + }) + .collect(Collectors.toList()); + return documentResponseConverter.of(document, tableDocumentResponseList); + }); + + } + + public Page getVersionsByProjectId(Integer projectId, Pageable page) { + return databaseDocumentDao.selectNotArchivedByProjectId(projectId) + .map(databaseDocument -> + databaseDocumentDao.selectVersionPageByProjectId(page, projectId) .map(history -> DatabaseDocumentVersionResponse.builder() + .databaseDocumentId(history.getId()) .version(history.getVersion()) .createAt(history.getCreateAt()) .build())) .orElseGet(Page::empty); } + public Optional getTableDetails(Integer projectId, + Integer tableId) { + // maybe deleted + if (!projectDao.existsById(projectId)) { + return Optional.empty(); + } + + return tableDocumentDao.selectOptionalById(tableId) + .map(table -> { + Integer documentId = table.getDatabaseDocumentId(); + var columns = tableColumnDocumentDao.selectByDatabaseDocumentId(documentId); + var indexes = tableIndexDocumentDao.selectByDatabaseMetaId(documentId); + var triggers = tableTriggerDocumentDao.selectByDatabaseDocumentId(documentId); + Map> columnsGroupByTableMetaId = columns.stream() + .collect(Collectors.groupingBy(TableColumnDocumentPojo::getTableDocumentId)); + Map> indexesGroupByTableMetaId = indexes.stream() + .collect(Collectors.groupingBy(TableIndexDocumentPojo::getTableDocumentId)); + Map> triggersGroupByTableMetaId = triggers.stream() + .collect(Collectors.groupingBy(TableTriggerDocumentPojo::getTableDocumentId)); + var subColumns = columnsGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); + var subIndexes = indexesGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); + var subTriggers = triggersGroupByTableMetaId.getOrDefault(tableId, Collections.emptyList()); + return documentResponseConverter.of(table, subColumns, subIndexes, subTriggers); + }); + } + public Optional toMarkdown(Integer projectId, Long version) { return getOneByProjectId(projectId, version) .map(doc -> { diff --git a/core/src/main/java/com/databasir/core/domain/group/converter/GroupPojoConverter.java b/core/src/main/java/com/databasir/core/domain/group/converter/GroupPojoConverter.java index 215a993..cb955f1 100644 --- a/core/src/main/java/com/databasir/core/domain/group/converter/GroupPojoConverter.java +++ b/core/src/main/java/com/databasir/core/domain/group/converter/GroupPojoConverter.java @@ -4,11 +4,19 @@ import com.databasir.core.domain.group.data.GroupCreateRequest; import com.databasir.core.domain.group.data.GroupUpdateRequest; import com.databasir.dao.tables.pojos.GroupPojo; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; @Mapper(componentModel = "spring") public interface GroupPojoConverter { + @Mapping(target = "id", ignore = true) + @Mapping(target = "deleted", ignore = true) + @Mapping(target = "createAt", ignore = true) + @Mapping(target = "updateAt", ignore = true) GroupPojo of(GroupCreateRequest groupCreateRequest); + @Mapping(target = "deleted", ignore = true) + @Mapping(target = "createAt", ignore = true) + @Mapping(target = "updateAt", ignore = true) GroupPojo of(GroupUpdateRequest groupUpdateRequest); } diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/Databasir.java b/dao/generated-src/jooq/main/java/com/databasir/dao/Databasir.java index 9326c63..7688ab9 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/Databasir.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/Databasir.java @@ -7,7 +7,6 @@ package com.databasir.dao; import com.databasir.dao.tables.DataSource; import com.databasir.dao.tables.DataSourceProperty; import com.databasir.dao.tables.DatabaseDocument; -import com.databasir.dao.tables.DatabaseDocumentHistory; import com.databasir.dao.tables.DocumentRemark; import com.databasir.dao.tables.Group; import com.databasir.dao.tables.Login; @@ -61,11 +60,6 @@ public class Databasir extends SchemaImpl { */ public final DatabaseDocument DATABASE_DOCUMENT = DatabaseDocument.DATABASE_DOCUMENT; - /** - * The table databasir.database_document_history. - */ - public final DatabaseDocumentHistory DATABASE_DOCUMENT_HISTORY = DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY; - /** * The table databasir.document_remark. */ @@ -165,7 +159,6 @@ public class Databasir extends SchemaImpl { DataSource.DATA_SOURCE, DataSourceProperty.DATA_SOURCE_PROPERTY, DatabaseDocument.DATABASE_DOCUMENT, - DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY, DocumentRemark.DOCUMENT_REMARK, Group.GROUP, Login.LOGIN, diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/Indexes.java b/dao/generated-src/jooq/main/java/com/databasir/dao/Indexes.java index 9c24e68..623d696 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/Indexes.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/Indexes.java @@ -5,7 +5,7 @@ package com.databasir.dao; import com.databasir.dao.tables.DataSourceProperty; -import com.databasir.dao.tables.DatabaseDocumentHistory; +import com.databasir.dao.tables.DatabaseDocument; import com.databasir.dao.tables.DocumentRemark; import com.databasir.dao.tables.TableColumnDocument; import com.databasir.dao.tables.TableDocument; @@ -33,7 +33,7 @@ public class Indexes { public static final Index TABLE_DOCUMENT_IDX_DATABASE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_database_document_id"), TableDocument.TABLE_DOCUMENT, new OrderField[] { TableDocument.TABLE_DOCUMENT.DATABASE_DOCUMENT_ID }, false); public static final Index TABLE_INDEX_DOCUMENT_IDX_DATABASE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_database_document_id"), TableIndexDocument.TABLE_INDEX_DOCUMENT, new OrderField[] { TableIndexDocument.TABLE_INDEX_DOCUMENT.DATABASE_DOCUMENT_ID }, false); public static final Index TABLE_TRIGGER_DOCUMENT_IDX_DATABASE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_database_document_id"), TableTriggerDocument.TABLE_TRIGGER_DOCUMENT, new OrderField[] { TableTriggerDocument.TABLE_TRIGGER_DOCUMENT.DATABASE_DOCUMENT_ID }, false); - public static final Index DATABASE_DOCUMENT_HISTORY_IDX_PROJECT_ID = Internal.createIndex(DSL.name("idx_project_id"), DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY, new OrderField[] { DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.PROJECT_ID }, false); + public static final Index DATABASE_DOCUMENT_IDX_PROJECT_ID = Internal.createIndex(DSL.name("idx_project_id"), DatabaseDocument.DATABASE_DOCUMENT, new OrderField[] { DatabaseDocument.DATABASE_DOCUMENT.PROJECT_ID }, false); public static final Index DOCUMENT_REMARK_IDX_PROJECT_ID = Internal.createIndex(DSL.name("idx_project_id"), DocumentRemark.DOCUMENT_REMARK, new OrderField[] { DocumentRemark.DOCUMENT_REMARK.PROJECT_ID }, false); public static final Index TABLE_COLUMN_DOCUMENT_IDX_TABLE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_table_document_id"), TableColumnDocument.TABLE_COLUMN_DOCUMENT, new OrderField[] { TableColumnDocument.TABLE_COLUMN_DOCUMENT.TABLE_DOCUMENT_ID }, false); public static final Index TABLE_INDEX_DOCUMENT_IDX_TABLE_DOCUMENT_ID = Internal.createIndex(DSL.name("idx_table_document_id"), TableIndexDocument.TABLE_INDEX_DOCUMENT, new OrderField[] { TableIndexDocument.TABLE_INDEX_DOCUMENT.TABLE_DOCUMENT_ID }, false); diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/Keys.java b/dao/generated-src/jooq/main/java/com/databasir/dao/Keys.java index 7c67b46..93941c9 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/Keys.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/Keys.java @@ -7,7 +7,6 @@ package com.databasir.dao; import com.databasir.dao.tables.DataSource; import com.databasir.dao.tables.DataSourceProperty; import com.databasir.dao.tables.DatabaseDocument; -import com.databasir.dao.tables.DatabaseDocumentHistory; import com.databasir.dao.tables.DocumentRemark; import com.databasir.dao.tables.Group; import com.databasir.dao.tables.Login; @@ -26,7 +25,6 @@ import com.databasir.dao.tables.UserFavoriteProject; import com.databasir.dao.tables.UserRole; import com.databasir.dao.tables.records.DataSourcePropertyRecord; import com.databasir.dao.tables.records.DataSourceRecord; -import com.databasir.dao.tables.records.DatabaseDocumentHistoryRecord; import com.databasir.dao.tables.records.DatabaseDocumentRecord; import com.databasir.dao.tables.records.DocumentRemarkRecord; import com.databasir.dao.tables.records.GroupRecord; @@ -66,9 +64,6 @@ public class Keys { public static final UniqueKey KEY_DATA_SOURCE_UK_PROJECT_ID = Internal.createUniqueKey(DataSource.DATA_SOURCE, DSL.name("KEY_data_source_uk_project_id"), new TableField[] { DataSource.DATA_SOURCE.PROJECT_ID }, true); public static final UniqueKey KEY_DATA_SOURCE_PROPERTY_PRIMARY = Internal.createUniqueKey(DataSourceProperty.DATA_SOURCE_PROPERTY, DSL.name("KEY_data_source_property_PRIMARY"), new TableField[] { DataSourceProperty.DATA_SOURCE_PROPERTY.ID }, true); public static final UniqueKey KEY_DATABASE_DOCUMENT_PRIMARY = Internal.createUniqueKey(DatabaseDocument.DATABASE_DOCUMENT, DSL.name("KEY_database_document_PRIMARY"), new TableField[] { DatabaseDocument.DATABASE_DOCUMENT.ID }, true); - public static final UniqueKey KEY_DATABASE_DOCUMENT_UK_PROJECT_ID = Internal.createUniqueKey(DatabaseDocument.DATABASE_DOCUMENT, DSL.name("KEY_database_document_uk_project_id"), new TableField[] { DatabaseDocument.DATABASE_DOCUMENT.PROJECT_ID }, true); - public static final UniqueKey KEY_DATABASE_DOCUMENT_HISTORY_PRIMARY = Internal.createUniqueKey(DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY, DSL.name("KEY_database_document_history_PRIMARY"), new TableField[] { DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.ID }, true); - public static final UniqueKey KEY_DATABASE_DOCUMENT_HISTORY_UK_CONNECTION_ID_VERSION = Internal.createUniqueKey(DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY, DSL.name("KEY_database_document_history_uk_connection_id_version"), new TableField[] { DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.DATABASE_DOCUMENT_ID, DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.VERSION }, true); public static final UniqueKey KEY_DOCUMENT_REMARK_PRIMARY = Internal.createUniqueKey(DocumentRemark.DOCUMENT_REMARK, DSL.name("KEY_document_remark_PRIMARY"), new TableField[] { DocumentRemark.DOCUMENT_REMARK.ID }, true); public static final UniqueKey KEY_GROUP_PRIMARY = Internal.createUniqueKey(Group.GROUP, DSL.name("KEY_group_PRIMARY"), new TableField[] { Group.GROUP.ID }, true); public static final UniqueKey KEY_LOGIN_PRIMARY = Internal.createUniqueKey(Login.LOGIN, DSL.name("KEY_login_PRIMARY"), new TableField[] { Login.LOGIN.ID }, true); diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/Tables.java b/dao/generated-src/jooq/main/java/com/databasir/dao/Tables.java index 0873fe8..a962daf 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/Tables.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/Tables.java @@ -7,7 +7,6 @@ package com.databasir.dao; import com.databasir.dao.tables.DataSource; import com.databasir.dao.tables.DataSourceProperty; import com.databasir.dao.tables.DatabaseDocument; -import com.databasir.dao.tables.DatabaseDocumentHistory; import com.databasir.dao.tables.DocumentRemark; import com.databasir.dao.tables.Group; import com.databasir.dao.tables.Login; @@ -47,11 +46,6 @@ public class Tables { */ public static final DatabaseDocument DATABASE_DOCUMENT = DatabaseDocument.DATABASE_DOCUMENT; - /** - * The table databasir.database_document_history. - */ - public static final DatabaseDocumentHistory DATABASE_DOCUMENT_HISTORY = DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY; - /** * The table databasir.document_remark. */ diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/DatabaseDocument.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/DatabaseDocument.java index c34fd83..96109aa 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/DatabaseDocument.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/DatabaseDocument.java @@ -5,6 +5,7 @@ package com.databasir.dao.tables; import com.databasir.dao.Databasir; +import com.databasir.dao.Indexes; import com.databasir.dao.Keys; import com.databasir.dao.tables.records.DatabaseDocumentRecord; @@ -15,6 +16,7 @@ import java.util.List; import org.jooq.Field; import org.jooq.ForeignKey; import org.jooq.Identity; +import org.jooq.Index; import org.jooq.Name; import org.jooq.Record; import org.jooq.Row9; @@ -79,6 +81,11 @@ public class DatabaseDocument extends TableImpl { */ public final TableField VERSION = createField(DSL.name("version"), SQLDataType.BIGINT.nullable(false).defaultValue(DSL.inline("1", SQLDataType.BIGINT)), this, ""); + /** + * The column databasir.database_document.is_archive. + */ + public final TableField IS_ARCHIVE = createField(DSL.name("is_archive"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.inline("0", SQLDataType.BOOLEAN)), this, ""); + /** * The column databasir.database_document.update_at. */ @@ -89,11 +96,6 @@ public class DatabaseDocument extends TableImpl { */ public final TableField CREATE_AT = createField(DSL.name("create_at"), SQLDataType.LOCALDATETIME(0).nullable(false).defaultValue(DSL.field("CURRENT_TIMESTAMP", SQLDataType.LOCALDATETIME)), this, ""); - /** - * The column databasir.database_document.is_archive. - */ - public final TableField IS_ARCHIVE = createField(DSL.name("is_archive"), SQLDataType.BOOLEAN.nullable(false).defaultValue(DSL.inline("0", SQLDataType.BOOLEAN)), this, ""); - private DatabaseDocument(Name alias, Table aliased) { this(alias, aliased, null); } @@ -134,6 +136,11 @@ public class DatabaseDocument extends TableImpl { return aliased() ? null : Databasir.DATABASIR; } + @Override + public List getIndexes() { + return Arrays.asList(Indexes.DATABASE_DOCUMENT_IDX_PROJECT_ID); + } + @Override public Identity getIdentity() { return (Identity) super.getIdentity(); @@ -144,11 +151,6 @@ public class DatabaseDocument extends TableImpl { return Keys.KEY_DATABASE_DOCUMENT_PRIMARY; } - @Override - public List> getUniqueKeys() { - return Arrays.asList(Keys.KEY_DATABASE_DOCUMENT_UK_PROJECT_ID); - } - @Override public DatabaseDocument as(String alias) { return new DatabaseDocument(DSL.name(alias), this); @@ -180,7 +182,7 @@ public class DatabaseDocument extends TableImpl { // ------------------------------------------------------------------------- @Override - public Row9 fieldsRow() { + public Row9 fieldsRow() { return (Row9) super.fieldsRow(); } } diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/DatabaseDocumentHistory.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/DatabaseDocumentHistory.java deleted file mode 100644 index fa7664b..0000000 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/DatabaseDocumentHistory.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package com.databasir.dao.tables; - - -import com.databasir.dao.Databasir; -import com.databasir.dao.Indexes; -import com.databasir.dao.Keys; -import com.databasir.dao.tables.records.DatabaseDocumentHistoryRecord; - -import java.time.LocalDateTime; -import java.util.Arrays; -import java.util.List; - -import org.jooq.Field; -import org.jooq.ForeignKey; -import org.jooq.Identity; -import org.jooq.Index; -import org.jooq.JSON; -import org.jooq.Name; -import org.jooq.Record; -import org.jooq.Row6; -import org.jooq.Schema; -import org.jooq.Table; -import org.jooq.TableField; -import org.jooq.TableOptions; -import org.jooq.UniqueKey; -import org.jooq.impl.DSL; -import org.jooq.impl.SQLDataType; -import org.jooq.impl.TableImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class DatabaseDocumentHistory extends TableImpl { - - private static final long serialVersionUID = 1L; - - /** - * The reference instance of - * databasir.database_document_history - */ - public static final DatabaseDocumentHistory DATABASE_DOCUMENT_HISTORY = new DatabaseDocumentHistory(); - - /** - * The class holding records for this type - */ - @Override - public Class getRecordType() { - return DatabaseDocumentHistoryRecord.class; - } - - /** - * The column databasir.database_document_history.id. - */ - public final TableField ID = createField(DSL.name("id"), SQLDataType.INTEGER.nullable(false).identity(true), this, ""); - - /** - * The column databasir.database_document_history.project_id. - */ - public final TableField PROJECT_ID = createField(DSL.name("project_id"), SQLDataType.INTEGER.nullable(false), this, ""); - - /** - * The column - * databasir.database_document_history.database_document_id. - */ - public final TableField DATABASE_DOCUMENT_ID = createField(DSL.name("database_document_id"), SQLDataType.INTEGER.nullable(false), this, ""); - - /** - * The column - * databasir.database_document_history.database_document_object. - */ - public final TableField DATABASE_DOCUMENT_OBJECT = createField(DSL.name("database_document_object"), SQLDataType.JSON, this, ""); - - /** - * The column databasir.database_document_history.version. - */ - public final TableField VERSION = createField(DSL.name("version"), SQLDataType.BIGINT.nullable(false), this, ""); - - /** - * The column databasir.database_document_history.create_at. - */ - public final TableField CREATE_AT = createField(DSL.name("create_at"), SQLDataType.LOCALDATETIME(0).nullable(false).defaultValue(DSL.field("CURRENT_TIMESTAMP", SQLDataType.LOCALDATETIME)), this, ""); - - private DatabaseDocumentHistory(Name alias, Table aliased) { - this(alias, aliased, null); - } - - private DatabaseDocumentHistory(Name alias, Table aliased, Field[] parameters) { - super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table()); - } - - /** - * Create an aliased databasir.database_document_history table - * reference - */ - public DatabaseDocumentHistory(String alias) { - this(DSL.name(alias), DATABASE_DOCUMENT_HISTORY); - } - - /** - * Create an aliased databasir.database_document_history table - * reference - */ - public DatabaseDocumentHistory(Name alias) { - this(alias, DATABASE_DOCUMENT_HISTORY); - } - - /** - * Create a databasir.database_document_history table reference - */ - public DatabaseDocumentHistory() { - this(DSL.name("database_document_history"), null); - } - - public DatabaseDocumentHistory(Table child, ForeignKey key) { - super(child, key, DATABASE_DOCUMENT_HISTORY); - } - - @Override - public Schema getSchema() { - return aliased() ? null : Databasir.DATABASIR; - } - - @Override - public List getIndexes() { - return Arrays.asList(Indexes.DATABASE_DOCUMENT_HISTORY_IDX_PROJECT_ID); - } - - @Override - public Identity getIdentity() { - return (Identity) super.getIdentity(); - } - - @Override - public UniqueKey getPrimaryKey() { - return Keys.KEY_DATABASE_DOCUMENT_HISTORY_PRIMARY; - } - - @Override - public List> getUniqueKeys() { - return Arrays.asList(Keys.KEY_DATABASE_DOCUMENT_HISTORY_UK_CONNECTION_ID_VERSION); - } - - @Override - public DatabaseDocumentHistory as(String alias) { - return new DatabaseDocumentHistory(DSL.name(alias), this); - } - - @Override - public DatabaseDocumentHistory as(Name alias) { - return new DatabaseDocumentHistory(alias, this); - } - - /** - * Rename this table - */ - @Override - public DatabaseDocumentHistory rename(String name) { - return new DatabaseDocumentHistory(DSL.name(name), null); - } - - /** - * Rename this table - */ - @Override - public DatabaseDocumentHistory rename(Name name) { - return new DatabaseDocumentHistory(name, null); - } - - // ------------------------------------------------------------------------- - // Row6 type methods - // ------------------------------------------------------------------------- - - @Override - public Row6 fieldsRow() { - return (Row6) super.fieldsRow(); - } -} diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/DatabaseDocumentHistoryPojo.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/DatabaseDocumentHistoryPojo.java deleted file mode 100644 index db013f5..0000000 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/DatabaseDocumentHistoryPojo.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package com.databasir.dao.tables.pojos; - - -import java.io.Serializable; -import java.time.LocalDateTime; - -import org.jooq.JSON; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class DatabaseDocumentHistoryPojo implements Serializable { - - private static final long serialVersionUID = 1L; - - private Integer id; - private Integer projectId; - private Integer databaseDocumentId; - private JSON databaseDocumentObject; - private Long version; - private LocalDateTime createAt; - - public DatabaseDocumentHistoryPojo() {} - - public DatabaseDocumentHistoryPojo(DatabaseDocumentHistoryPojo value) { - this.id = value.id; - this.projectId = value.projectId; - this.databaseDocumentId = value.databaseDocumentId; - this.databaseDocumentObject = value.databaseDocumentObject; - this.version = value.version; - this.createAt = value.createAt; - } - - public DatabaseDocumentHistoryPojo( - Integer id, - Integer projectId, - Integer databaseDocumentId, - JSON databaseDocumentObject, - Long version, - LocalDateTime createAt - ) { - this.id = id; - this.projectId = projectId; - this.databaseDocumentId = databaseDocumentId; - this.databaseDocumentObject = databaseDocumentObject; - this.version = version; - this.createAt = createAt; - } - - /** - * Getter for databasir.database_document_history.id. - */ - public Integer getId() { - return this.id; - } - - /** - * Setter for databasir.database_document_history.id. - */ - public void setId(Integer id) { - this.id = id; - } - - /** - * Getter for databasir.database_document_history.project_id. - */ - public Integer getProjectId() { - return this.projectId; - } - - /** - * Setter for databasir.database_document_history.project_id. - */ - public void setProjectId(Integer projectId) { - this.projectId = projectId; - } - - /** - * Getter for - * databasir.database_document_history.database_document_id. - */ - public Integer getDatabaseDocumentId() { - return this.databaseDocumentId; - } - - /** - * Setter for - * databasir.database_document_history.database_document_id. - */ - public void setDatabaseDocumentId(Integer databaseDocumentId) { - this.databaseDocumentId = databaseDocumentId; - } - - /** - * Getter for - * databasir.database_document_history.database_document_object. - */ - public JSON getDatabaseDocumentObject() { - return this.databaseDocumentObject; - } - - /** - * Setter for - * databasir.database_document_history.database_document_object. - */ - public void setDatabaseDocumentObject(JSON databaseDocumentObject) { - this.databaseDocumentObject = databaseDocumentObject; - } - - /** - * Getter for databasir.database_document_history.version. - */ - public Long getVersion() { - return this.version; - } - - /** - * Setter for databasir.database_document_history.version. - */ - public void setVersion(Long version) { - this.version = version; - } - - /** - * Getter for databasir.database_document_history.create_at. - */ - public LocalDateTime getCreateAt() { - return this.createAt; - } - - /** - * Setter for databasir.database_document_history.create_at. - */ - public void setCreateAt(LocalDateTime createAt) { - this.createAt = createAt; - } - - @Override - public String toString() { - StringBuilder sb = new StringBuilder("DatabaseDocumentHistoryPojo ("); - - sb.append(id); - sb.append(", ").append(projectId); - sb.append(", ").append(databaseDocumentId); - sb.append(", ").append(databaseDocumentObject); - sb.append(", ").append(version); - sb.append(", ").append(createAt); - - sb.append(")"); - return sb.toString(); - } -} diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/DatabaseDocumentPojo.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/DatabaseDocumentPojo.java index 5d8e8ae..bc3f862 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/DatabaseDocumentPojo.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/pojos/DatabaseDocumentPojo.java @@ -22,9 +22,9 @@ public class DatabaseDocumentPojo implements Serializable { private String productName; private String productVersion; private Long version; + private Boolean isArchive; private LocalDateTime updateAt; private LocalDateTime createAt; - private Boolean isArchive; public DatabaseDocumentPojo() {} @@ -35,9 +35,9 @@ public class DatabaseDocumentPojo implements Serializable { this.productName = value.productName; this.productVersion = value.productVersion; this.version = value.version; + this.isArchive = value.isArchive; this.updateAt = value.updateAt; this.createAt = value.createAt; - this.isArchive = value.isArchive; } public DatabaseDocumentPojo( @@ -47,9 +47,9 @@ public class DatabaseDocumentPojo implements Serializable { String productName, String productVersion, Long version, + Boolean isArchive, LocalDateTime updateAt, - LocalDateTime createAt, - Boolean isArchive + LocalDateTime createAt ) { this.id = id; this.projectId = projectId; @@ -57,9 +57,9 @@ public class DatabaseDocumentPojo implements Serializable { this.productName = productName; this.productVersion = productVersion; this.version = version; + this.isArchive = isArchive; this.updateAt = updateAt; this.createAt = createAt; - this.isArchive = isArchive; } /** @@ -146,6 +146,20 @@ public class DatabaseDocumentPojo implements Serializable { this.version = version; } + /** + * Getter for databasir.database_document.is_archive. + */ + public Boolean getIsArchive() { + return this.isArchive; + } + + /** + * Setter for databasir.database_document.is_archive. + */ + public void setIsArchive(Boolean isArchive) { + this.isArchive = isArchive; + } + /** * Getter for databasir.database_document.update_at. */ @@ -174,20 +188,6 @@ public class DatabaseDocumentPojo implements Serializable { this.createAt = createAt; } - /** - * Getter for databasir.database_document.is_archive. - */ - public Boolean getIsArchive() { - return this.isArchive; - } - - /** - * Setter for databasir.database_document.is_archive. - */ - public void setIsArchive(Boolean isArchive) { - this.isArchive = isArchive; - } - @Override public String toString() { StringBuilder sb = new StringBuilder("DatabaseDocumentPojo ("); @@ -198,9 +198,9 @@ public class DatabaseDocumentPojo implements Serializable { sb.append(", ").append(productName); sb.append(", ").append(productVersion); sb.append(", ").append(version); + sb.append(", ").append(isArchive); sb.append(", ").append(updateAt); sb.append(", ").append(createAt); - sb.append(", ").append(isArchive); sb.append(")"); return sb.toString(); diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/DatabaseDocumentHistoryRecord.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/DatabaseDocumentHistoryRecord.java deleted file mode 100644 index ca46154..0000000 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/DatabaseDocumentHistoryRecord.java +++ /dev/null @@ -1,316 +0,0 @@ -/* - * This file is generated by jOOQ. - */ -package com.databasir.dao.tables.records; - - -import com.databasir.dao.tables.DatabaseDocumentHistory; -import com.databasir.dao.tables.pojos.DatabaseDocumentHistoryPojo; - -import java.time.LocalDateTime; - -import org.jooq.Field; -import org.jooq.JSON; -import org.jooq.Record1; -import org.jooq.Record6; -import org.jooq.Row6; -import org.jooq.impl.UpdatableRecordImpl; - - -/** - * This class is generated by jOOQ. - */ -@SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class DatabaseDocumentHistoryRecord extends UpdatableRecordImpl implements Record6 { - - private static final long serialVersionUID = 1L; - - /** - * Setter for databasir.database_document_history.id. - */ - public void setId(Integer value) { - set(0, value); - } - - /** - * Getter for databasir.database_document_history.id. - */ - public Integer getId() { - return (Integer) get(0); - } - - /** - * Setter for databasir.database_document_history.project_id. - */ - public void setProjectId(Integer value) { - set(1, value); - } - - /** - * Getter for databasir.database_document_history.project_id. - */ - public Integer getProjectId() { - return (Integer) get(1); - } - - /** - * Setter for - * databasir.database_document_history.database_document_id. - */ - public void setDatabaseDocumentId(Integer value) { - set(2, value); - } - - /** - * Getter for - * databasir.database_document_history.database_document_id. - */ - public Integer getDatabaseDocumentId() { - return (Integer) get(2); - } - - /** - * Setter for - * databasir.database_document_history.database_document_object. - */ - public void setDatabaseDocumentObject(JSON value) { - set(3, value); - } - - /** - * Getter for - * databasir.database_document_history.database_document_object. - */ - public JSON getDatabaseDocumentObject() { - return (JSON) get(3); - } - - /** - * Setter for databasir.database_document_history.version. - */ - public void setVersion(Long value) { - set(4, value); - } - - /** - * Getter for databasir.database_document_history.version. - */ - public Long getVersion() { - return (Long) get(4); - } - - /** - * Setter for databasir.database_document_history.create_at. - */ - public void setCreateAt(LocalDateTime value) { - set(5, value); - } - - /** - * Getter for databasir.database_document_history.create_at. - */ - public LocalDateTime getCreateAt() { - return (LocalDateTime) get(5); - } - - // ------------------------------------------------------------------------- - // Primary key information - // ------------------------------------------------------------------------- - - @Override - public Record1 key() { - return (Record1) super.key(); - } - - // ------------------------------------------------------------------------- - // Record6 type implementation - // ------------------------------------------------------------------------- - - @Override - public Row6 fieldsRow() { - return (Row6) super.fieldsRow(); - } - - @Override - public Row6 valuesRow() { - return (Row6) super.valuesRow(); - } - - @Override - public Field field1() { - return DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.ID; - } - - @Override - public Field field2() { - return DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.PROJECT_ID; - } - - @Override - public Field field3() { - return DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.DATABASE_DOCUMENT_ID; - } - - @Override - public Field field4() { - return DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.DATABASE_DOCUMENT_OBJECT; - } - - @Override - public Field field5() { - return DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.VERSION; - } - - @Override - public Field field6() { - return DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY.CREATE_AT; - } - - @Override - public Integer component1() { - return getId(); - } - - @Override - public Integer component2() { - return getProjectId(); - } - - @Override - public Integer component3() { - return getDatabaseDocumentId(); - } - - @Override - public JSON component4() { - return getDatabaseDocumentObject(); - } - - @Override - public Long component5() { - return getVersion(); - } - - @Override - public LocalDateTime component6() { - return getCreateAt(); - } - - @Override - public Integer value1() { - return getId(); - } - - @Override - public Integer value2() { - return getProjectId(); - } - - @Override - public Integer value3() { - return getDatabaseDocumentId(); - } - - @Override - public JSON value4() { - return getDatabaseDocumentObject(); - } - - @Override - public Long value5() { - return getVersion(); - } - - @Override - public LocalDateTime value6() { - return getCreateAt(); - } - - @Override - public DatabaseDocumentHistoryRecord value1(Integer value) { - setId(value); - return this; - } - - @Override - public DatabaseDocumentHistoryRecord value2(Integer value) { - setProjectId(value); - return this; - } - - @Override - public DatabaseDocumentHistoryRecord value3(Integer value) { - setDatabaseDocumentId(value); - return this; - } - - @Override - public DatabaseDocumentHistoryRecord value4(JSON value) { - setDatabaseDocumentObject(value); - return this; - } - - @Override - public DatabaseDocumentHistoryRecord value5(Long value) { - setVersion(value); - return this; - } - - @Override - public DatabaseDocumentHistoryRecord value6(LocalDateTime value) { - setCreateAt(value); - return this; - } - - @Override - public DatabaseDocumentHistoryRecord values(Integer value1, Integer value2, Integer value3, JSON value4, Long value5, LocalDateTime value6) { - value1(value1); - value2(value2); - value3(value3); - value4(value4); - value5(value5); - value6(value6); - return this; - } - - // ------------------------------------------------------------------------- - // Constructors - // ------------------------------------------------------------------------- - - /** - * Create a detached DatabaseDocumentHistoryRecord - */ - public DatabaseDocumentHistoryRecord() { - super(DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY); - } - - /** - * Create a detached, initialised DatabaseDocumentHistoryRecord - */ - public DatabaseDocumentHistoryRecord(Integer id, Integer projectId, Integer databaseDocumentId, JSON databaseDocumentObject, Long version, LocalDateTime createAt) { - super(DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY); - - setId(id); - setProjectId(projectId); - setDatabaseDocumentId(databaseDocumentId); - setDatabaseDocumentObject(databaseDocumentObject); - setVersion(version); - setCreateAt(createAt); - } - - /** - * Create a detached, initialised DatabaseDocumentHistoryRecord - */ - public DatabaseDocumentHistoryRecord(DatabaseDocumentHistoryPojo value) { - super(DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY); - - if (value != null) { - setId(value.getId()); - setProjectId(value.getProjectId()); - setDatabaseDocumentId(value.getDatabaseDocumentId()); - setDatabaseDocumentObject(value.getDatabaseDocumentObject()); - setVersion(value.getVersion()); - setCreateAt(value.getCreateAt()); - } - } -} diff --git a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/DatabaseDocumentRecord.java b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/DatabaseDocumentRecord.java index f6cd83d..63271c5 100644 --- a/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/DatabaseDocumentRecord.java +++ b/dao/generated-src/jooq/main/java/com/databasir/dao/tables/records/DatabaseDocumentRecord.java @@ -20,7 +20,7 @@ import org.jooq.impl.UpdatableRecordImpl; * This class is generated by jOOQ. */ @SuppressWarnings({ "all", "unchecked", "rawtypes" }) -public class DatabaseDocumentRecord extends UpdatableRecordImpl implements Record9 { +public class DatabaseDocumentRecord extends UpdatableRecordImpl implements Record9 { private static final long serialVersionUID = 1L; @@ -108,46 +108,46 @@ public class DatabaseDocumentRecord extends UpdatableRecordImpldatabasir.database_document.update_at. - */ - public void setUpdateAt(LocalDateTime value) { - set(6, value); - } - - /** - * Getter for databasir.database_document.update_at. - */ - public LocalDateTime getUpdateAt() { - return (LocalDateTime) get(6); - } - - /** - * Setter for databasir.database_document.create_at. - */ - public void setCreateAt(LocalDateTime value) { - set(7, value); - } - - /** - * Getter for databasir.database_document.create_at. - */ - public LocalDateTime getCreateAt() { - return (LocalDateTime) get(7); - } - /** * Setter for databasir.database_document.is_archive. */ public void setIsArchive(Boolean value) { - set(8, value); + set(6, value); } /** * Getter for databasir.database_document.is_archive. */ public Boolean getIsArchive() { - return (Boolean) get(8); + return (Boolean) get(6); + } + + /** + * Setter for databasir.database_document.update_at. + */ + public void setUpdateAt(LocalDateTime value) { + set(7, value); + } + + /** + * Getter for databasir.database_document.update_at. + */ + public LocalDateTime getUpdateAt() { + return (LocalDateTime) get(7); + } + + /** + * Setter for databasir.database_document.create_at. + */ + public void setCreateAt(LocalDateTime value) { + set(8, value); + } + + /** + * Getter for databasir.database_document.create_at. + */ + public LocalDateTime getCreateAt() { + return (LocalDateTime) get(8); } // ------------------------------------------------------------------------- @@ -164,12 +164,12 @@ public class DatabaseDocumentRecord extends UpdatableRecordImpl fieldsRow() { + public Row9 fieldsRow() { return (Row9) super.fieldsRow(); } @Override - public Row9 valuesRow() { + public Row9 valuesRow() { return (Row9) super.valuesRow(); } @@ -204,18 +204,18 @@ public class DatabaseDocumentRecord extends UpdatableRecordImpl field7() { - return DatabaseDocument.DATABASE_DOCUMENT.UPDATE_AT; + public Field field7() { + return DatabaseDocument.DATABASE_DOCUMENT.IS_ARCHIVE; } @Override public Field field8() { - return DatabaseDocument.DATABASE_DOCUMENT.CREATE_AT; + return DatabaseDocument.DATABASE_DOCUMENT.UPDATE_AT; } @Override - public Field field9() { - return DatabaseDocument.DATABASE_DOCUMENT.IS_ARCHIVE; + public Field field9() { + return DatabaseDocument.DATABASE_DOCUMENT.CREATE_AT; } @Override @@ -249,18 +249,18 @@ public class DatabaseDocumentRecord extends UpdatableRecordImpl { .fetchOptionalInto(DatabaseDocumentPojo.class); } + public Optional selectOptionalByProjectIdAndVersion(Integer projectId, + Long version) { + return getDslContext() + .select(DATABASE_DOCUMENT.fields()).from(DATABASE_DOCUMENT) + .where(DATABASE_DOCUMENT.PROJECT_ID.eq(projectId).and(DATABASE_DOCUMENT.VERSION.eq(version))) + .fetchOptionalInto(DatabaseDocumentPojo.class); + } + public void update(DatabaseDocumentPojo toPojo) { DatabaseDocumentRecord record = getDslContext().newRecord(DATABASE_DOCUMENT, toPojo); record.changed(DATABASE_DOCUMENT.ID, false); record.changed(DATABASE_DOCUMENT.CREATE_AT, false); record.update(); } + + public Optional selectNotArchivedByProjectId(Integer projectId) { + return getDslContext() + .select(DATABASE_DOCUMENT.fields()).from(DATABASE_DOCUMENT) + .where(DATABASE_DOCUMENT.PROJECT_ID.eq(projectId).and(DATABASE_DOCUMENT.IS_ARCHIVE.eq(false))) + .fetchOptionalInto(DatabaseDocumentPojo.class); + } + + public void updateIsArchiveById(Integer id, Boolean isArchive) { + this.getDslContext() + .update(DATABASE_DOCUMENT).set(DATABASE_DOCUMENT.IS_ARCHIVE, isArchive) + .where(DATABASE_DOCUMENT.ID.eq(id).and(DATABASE_DOCUMENT.IS_ARCHIVE.eq(!isArchive))) + .execute(); + } + + public Page selectVersionPageByProjectId(Pageable request, + Integer projectId) { + Condition condition = DATABASE_DOCUMENT.PROJECT_ID.eq(projectId); + Integer count = getDslContext() + .selectCount().from(DATABASE_DOCUMENT).where(condition) + .fetchOne(0, int.class); + int total = count == null ? 0 : count; + List data = getDslContext() + .select( + DATABASE_DOCUMENT.VERSION, + DATABASE_DOCUMENT.ID, + DATABASE_DOCUMENT.CREATE_AT + ) + .from(DATABASE_DOCUMENT) + .where(condition) + .orderBy(getSortFields(request.getSort())) + .offset(request.getOffset()) + .limit(request.getPageSize()) + .fetchInto(DatabaseDocumentVersionPojo.class); + return new PageImpl<>(data, request, total); + } } diff --git a/dao/src/main/java/com/databasir/dao/impl/DatabaseDocumentHistoryDao.java b/dao/src/main/java/com/databasir/dao/impl/DatabaseDocumentHistoryDao.java deleted file mode 100644 index 186d022..0000000 --- a/dao/src/main/java/com/databasir/dao/impl/DatabaseDocumentHistoryDao.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.databasir.dao.impl; - -import com.databasir.dao.tables.pojos.DatabaseDocumentHistoryPojo; -import com.databasir.dao.value.DatabaseDocumentVersionPojo; -import lombok.Getter; -import org.jooq.Condition; -import org.jooq.DSLContext; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Repository; - -import java.util.List; -import java.util.Optional; - -import static com.databasir.dao.Tables.DATABASE_DOCUMENT_HISTORY; - -@Repository -public class DatabaseDocumentHistoryDao extends BaseDao { - - @Autowired - @Getter - private DSLContext dslContext; - - public DatabaseDocumentHistoryDao() { - super(DATABASE_DOCUMENT_HISTORY, DatabaseDocumentHistoryPojo.class); - } - - public Optional selectOptionalByProjectIdAndVersion(Integer projectId, Long version) { - return dslContext - .selectFrom(DATABASE_DOCUMENT_HISTORY) - .where(DATABASE_DOCUMENT_HISTORY.PROJECT_ID.eq(projectId) - .and(DATABASE_DOCUMENT_HISTORY.VERSION.eq(version))) - .fetchOptionalInto(DatabaseDocumentHistoryPojo.class); - } - - public Page selectVersionPageByDatabaseDocumentId(Pageable request, - Integer schemaDocumentId) { - Condition condition = DATABASE_DOCUMENT_HISTORY.DATABASE_DOCUMENT_ID.eq(schemaDocumentId); - Integer count = getDslContext() - .selectCount().from(DATABASE_DOCUMENT_HISTORY).where(condition) - .fetchOne(0, int.class); - int total = count == null ? 0 : count; - List data = getDslContext() - .select( - DATABASE_DOCUMENT_HISTORY.VERSION, - DATABASE_DOCUMENT_HISTORY.DATABASE_DOCUMENT_ID, - DATABASE_DOCUMENT_HISTORY.CREATE_AT - ) - .from(DATABASE_DOCUMENT_HISTORY) - .where(condition) - .orderBy(getSortFields(request.getSort())) - .offset(request.getOffset()) - .limit(request.getPageSize()) - .fetchInto(DatabaseDocumentVersionPojo.class); - return new PageImpl<>(data, request, total); - } -} diff --git a/dao/src/main/java/com/databasir/dao/value/DatabaseDocumentVersionPojo.java b/dao/src/main/java/com/databasir/dao/value/DatabaseDocumentVersionPojo.java index 064c38f..8a22a87 100644 --- a/dao/src/main/java/com/databasir/dao/value/DatabaseDocumentVersionPojo.java +++ b/dao/src/main/java/com/databasir/dao/value/DatabaseDocumentVersionPojo.java @@ -7,7 +7,7 @@ import java.time.LocalDateTime; @Data public class DatabaseDocumentVersionPojo { - private Integer databaseDocumentId; + private Integer id; private Long version; diff --git a/dao/src/main/resources/db/migration/V1__init.sql b/dao/src/main/resources/db/migration/V1__init.sql index 5ca9fb1..d9021c3 100644 --- a/dao/src/main/resources/db/migration/V1__init.sql +++ b/dao/src/main/resources/db/migration/V1__init.sql @@ -123,21 +123,9 @@ CREATE TABLE IF NOT EXISTS database_document product_name TEXT NOT NULL, product_version TEXT NOT NULL, version BIGINT NOT NULL DEFAULT 1, + is_archive BOOLEAN NOT NULL DEFAULT FALSE, update_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, create_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT uk_project_id UNIQUE (project_id) -) CHARSET utf8mb4 - COLLATE utf8mb4_unicode_ci; - -CREATE TABLE IF NOT EXISTS database_document_history -( - id INT PRIMARY KEY AUTO_INCREMENT, - project_id INT NOT NULL, - database_document_id INT NOT NULL, - database_document_object JSON DEFAULT NULL, - version BIGINT NOT NULL, - create_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - CONSTRAINT uk_connection_id_version UNIQUE (database_document_id, version), INDEX idx_project_id (project_id) ) CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;