Merge pull request #10 from vran-dev/feature/primaryKey

feature: refactor primary key logic
This commit is contained in:
vran 2022-02-01 14:11:44 +08:00 committed by GitHub
commit b8916ea8bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
26 changed files with 150 additions and 139 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
.gradle/**
**/build/**
.idea/**
**/.DS_Store

View File

@ -1 +1 @@
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>databasir-frontend</title><link href="/css/chunk-1b2e2587.a5b9f9ad.css" rel="prefetch"><link href="/css/chunk-3bf24d18.e722c805.css" rel="prefetch"><link href="/css/chunk-7efe8be4.a5cbc9e6.css" rel="prefetch"><link href="/css/chunk-bf93911a.ab54ac4c.css" rel="prefetch"><link href="/js/chunk-1b2e2587.2a26d5cb.js" rel="prefetch"><link href="/js/chunk-2d0cc811.feb081c8.js" rel="prefetch"><link href="/js/chunk-3bf24d18.e5da42ea.js" rel="prefetch"><link href="/js/chunk-48cebeac.b43a95b4.js" rel="prefetch"><link href="/js/chunk-7efe8be4.e8bbd745.js" rel="prefetch"><link href="/js/chunk-9622a6d8.c20b1f79.js" rel="prefetch"><link href="/js/chunk-abb10c56.4c323350.js" rel="prefetch"><link href="/js/chunk-bf93911a.d40185ff.js" rel="prefetch"><link href="/js/chunk-fffb1b64.df1e960f.js" rel="prefetch"><link href="/css/app.56c172b4.css" rel="preload" as="style"><link href="/css/chunk-vendors.d4aa889d.css" rel="preload" as="style"><link href="/js/app.cf623e0d.js" rel="preload" as="script"><link href="/js/chunk-vendors.ebe2dc88.js" rel="preload" as="script"><link href="/css/chunk-vendors.d4aa889d.css" rel="stylesheet"><link href="/css/app.56c172b4.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but databasir-frontend doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.ebe2dc88.js"></script><script src="/js/app.cf623e0d.js"></script></body></html>
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>databasir-frontend</title><link href="/css/chunk-1b2e2587.a5b9f9ad.css" rel="prefetch"><link href="/css/chunk-4935816e.e722c805.css" rel="prefetch"><link href="/css/chunk-7efe8be4.a5cbc9e6.css" rel="prefetch"><link href="/css/chunk-bf93911a.ab54ac4c.css" rel="prefetch"><link href="/js/chunk-1b2e2587.2a26d5cb.js" rel="prefetch"><link href="/js/chunk-2d0cc811.feb081c8.js" rel="prefetch"><link href="/js/chunk-48cebeac.b43a95b4.js" rel="prefetch"><link href="/js/chunk-4935816e.627c0115.js" rel="prefetch"><link href="/js/chunk-7efe8be4.e8bbd745.js" rel="prefetch"><link href="/js/chunk-9622a6d8.c20b1f79.js" rel="prefetch"><link href="/js/chunk-abb10c56.4c323350.js" rel="prefetch"><link href="/js/chunk-bf93911a.d40185ff.js" rel="prefetch"><link href="/js/chunk-fffb1b64.df1e960f.js" rel="prefetch"><link href="/css/app.56c172b4.css" rel="preload" as="style"><link href="/css/chunk-vendors.d4aa889d.css" rel="preload" as="style"><link href="/js/app.51f76bee.js" rel="preload" as="script"><link href="/js/chunk-vendors.ebe2dc88.js" rel="preload" as="script"><link href="/css/chunk-vendors.d4aa889d.css" rel="stylesheet"><link href="/css/app.56c172b4.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but databasir-frontend doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="/js/chunk-vendors.ebe2dc88.js"></script><script src="/js/app.51f76bee.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -51,7 +51,6 @@ public interface DocumentPojoConverter extends BaseConverter {
.collect(Collectors.toList());
}
@Mapping(target = "isPrimary", source = "meta.isPrimaryKey")
@Mapping(target = "isUnique", source = "meta.isUniqueKey")
@Mapping(target = "columnNameArray", source = "meta.columnNames")
TableIndexDocumentPojo toIndexPojo(Integer databaseDocumentId,

View File

@ -72,6 +72,8 @@ public class DatabaseDocumentResponse {
private String comment;
private Boolean isPrimaryKey;
private String nullable;
private String autoIncrement;
@ -91,8 +93,6 @@ public class DatabaseDocumentResponse {
private String name;
private Boolean isPrimary;
private Boolean isUnique;
@Builder.Default

View File

@ -19,7 +19,7 @@ import org.jooq.Identity;
import org.jooq.Index;
import org.jooq.Name;
import org.jooq.Record;
import org.jooq.Row12;
import org.jooq.Row13;
import org.jooq.Schema;
import org.jooq.Table;
import org.jooq.TableField;
@ -98,6 +98,11 @@ public class TableColumnDocument extends TableImpl<TableColumnDocumentRecord> {
*/
public final TableField<TableColumnDocumentRecord, Integer> DECIMAL_DIGITS = createField(DSL.name("decimal_digits"), SQLDataType.INTEGER, this, "");
/**
* The column <code>databasir.table_column_document.is_primary_key</code>.
*/
public final TableField<TableColumnDocumentRecord, Boolean> IS_PRIMARY_KEY = createField(DSL.name("is_primary_key"), SQLDataType.BOOLEAN.nullable(false), this, "");
/**
* The column <code>databasir.table_column_document.nullable</code>. YES,
* NO, UNKNOWN
@ -197,11 +202,11 @@ public class TableColumnDocument extends TableImpl<TableColumnDocumentRecord> {
}
// -------------------------------------------------------------------------
// Row12 type methods
// Row13 type methods
// -------------------------------------------------------------------------
@Override
public Row12<Integer, Integer, Integer, String, String, String, String, Integer, Integer, String, String, LocalDateTime> fieldsRow() {
return (Row12) super.fieldsRow();
public Row13<Integer, Integer, Integer, String, String, String, String, Integer, Integer, Boolean, String, String, LocalDateTime> fieldsRow() {
return (Row13) super.fieldsRow();
}
}

View File

@ -20,7 +20,7 @@ import org.jooq.Index;
import org.jooq.JSON;
import org.jooq.Name;
import org.jooq.Record;
import org.jooq.Row8;
import org.jooq.Row7;
import org.jooq.Schema;
import org.jooq.Table;
import org.jooq.TableField;
@ -73,11 +73,6 @@ public class TableIndexDocument extends TableImpl<TableIndexDocumentRecord> {
*/
public final TableField<TableIndexDocumentRecord, String> NAME = createField(DSL.name("name"), SQLDataType.CLOB.nullable(false), this, "");
/**
* The column <code>databasir.table_index_document.is_primary</code>.
*/
public final TableField<TableIndexDocumentRecord, Boolean> IS_PRIMARY = createField(DSL.name("is_primary"), SQLDataType.BOOLEAN.nullable(false), this, "");
/**
* The column <code>databasir.table_index_document.is_unique</code>.
*/
@ -175,11 +170,11 @@ public class TableIndexDocument extends TableImpl<TableIndexDocumentRecord> {
}
// -------------------------------------------------------------------------
// Row8 type methods
// Row7 type methods
// -------------------------------------------------------------------------
@Override
public Row8<Integer, Integer, Integer, String, Boolean, Boolean, JSON, LocalDateTime> fieldsRow() {
return (Row8) super.fieldsRow();
public Row7<Integer, Integer, Integer, String, Boolean, JSON, LocalDateTime> fieldsRow() {
return (Row7) super.fieldsRow();
}
}

View File

@ -25,6 +25,7 @@ public class TableColumnDocumentPojo implements Serializable {
private String defaultValue;
private Integer size;
private Integer decimalDigits;
private Boolean isPrimaryKey;
private String nullable;
private String autoIncrement;
private LocalDateTime createAt;
@ -41,6 +42,7 @@ public class TableColumnDocumentPojo implements Serializable {
this.defaultValue = value.defaultValue;
this.size = value.size;
this.decimalDigits = value.decimalDigits;
this.isPrimaryKey = value.isPrimaryKey;
this.nullable = value.nullable;
this.autoIncrement = value.autoIncrement;
this.createAt = value.createAt;
@ -56,6 +58,7 @@ public class TableColumnDocumentPojo implements Serializable {
String defaultValue,
Integer size,
Integer decimalDigits,
Boolean isPrimaryKey,
String nullable,
String autoIncrement,
LocalDateTime createAt
@ -69,6 +72,7 @@ public class TableColumnDocumentPojo implements Serializable {
this.defaultValue = defaultValue;
this.size = size;
this.decimalDigits = decimalDigits;
this.isPrimaryKey = isPrimaryKey;
this.nullable = nullable;
this.autoIncrement = autoIncrement;
this.createAt = createAt;
@ -204,6 +208,20 @@ public class TableColumnDocumentPojo implements Serializable {
this.decimalDigits = decimalDigits;
}
/**
* Getter for <code>databasir.table_column_document.is_primary_key</code>.
*/
public Boolean getIsPrimaryKey() {
return this.isPrimaryKey;
}
/**
* Setter for <code>databasir.table_column_document.is_primary_key</code>.
*/
public void setIsPrimaryKey(Boolean isPrimaryKey) {
this.isPrimaryKey = isPrimaryKey;
}
/**
* Getter for <code>databasir.table_column_document.nullable</code>. YES,
* NO, UNKNOWN
@ -263,6 +281,7 @@ public class TableColumnDocumentPojo implements Serializable {
sb.append(", ").append(defaultValue);
sb.append(", ").append(size);
sb.append(", ").append(decimalDigits);
sb.append(", ").append(isPrimaryKey);
sb.append(", ").append(nullable);
sb.append(", ").append(autoIncrement);
sb.append(", ").append(createAt);

View File

@ -22,7 +22,6 @@ public class TableIndexDocumentPojo implements Serializable {
private Integer tableDocumentId;
private Integer databaseDocumentId;
private String name;
private Boolean isPrimary;
private Boolean isUnique;
private JSON columnNameArray;
private LocalDateTime createAt;
@ -34,7 +33,6 @@ public class TableIndexDocumentPojo implements Serializable {
this.tableDocumentId = value.tableDocumentId;
this.databaseDocumentId = value.databaseDocumentId;
this.name = value.name;
this.isPrimary = value.isPrimary;
this.isUnique = value.isUnique;
this.columnNameArray = value.columnNameArray;
this.createAt = value.createAt;
@ -45,7 +43,6 @@ public class TableIndexDocumentPojo implements Serializable {
Integer tableDocumentId,
Integer databaseDocumentId,
String name,
Boolean isPrimary,
Boolean isUnique,
JSON columnNameArray,
LocalDateTime createAt
@ -54,7 +51,6 @@ public class TableIndexDocumentPojo implements Serializable {
this.tableDocumentId = tableDocumentId;
this.databaseDocumentId = databaseDocumentId;
this.name = name;
this.isPrimary = isPrimary;
this.isUnique = isUnique;
this.columnNameArray = columnNameArray;
this.createAt = createAt;
@ -118,20 +114,6 @@ public class TableIndexDocumentPojo implements Serializable {
this.name = name;
}
/**
* Getter for <code>databasir.table_index_document.is_primary</code>.
*/
public Boolean getIsPrimary() {
return this.isPrimary;
}
/**
* Setter for <code>databasir.table_index_document.is_primary</code>.
*/
public void setIsPrimary(Boolean isPrimary) {
this.isPrimary = isPrimary;
}
/**
* Getter for <code>databasir.table_index_document.is_unique</code>.
*/
@ -182,7 +164,6 @@ public class TableIndexDocumentPojo implements Serializable {
sb.append(", ").append(tableDocumentId);
sb.append(", ").append(databaseDocumentId);
sb.append(", ").append(name);
sb.append(", ").append(isPrimary);
sb.append(", ").append(isUnique);
sb.append(", ").append(columnNameArray);
sb.append(", ").append(createAt);

View File

@ -11,8 +11,8 @@ import java.time.LocalDateTime;
import org.jooq.Field;
import org.jooq.Record1;
import org.jooq.Record12;
import org.jooq.Row12;
import org.jooq.Record13;
import org.jooq.Row13;
import org.jooq.impl.UpdatableRecordImpl;
@ -20,7 +20,7 @@ import org.jooq.impl.UpdatableRecordImpl;
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDocumentRecord> implements Record12<Integer, Integer, Integer, String, String, String, String, Integer, Integer, String, String, LocalDateTime> {
public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDocumentRecord> implements Record13<Integer, Integer, Integer, String, String, String, String, Integer, Integer, Boolean, String, String, LocalDateTime> {
private static final long serialVersionUID = 1L;
@ -154,12 +154,26 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
return (Integer) get(8);
}
/**
* Setter for <code>databasir.table_column_document.is_primary_key</code>.
*/
public void setIsPrimaryKey(Boolean value) {
set(9, value);
}
/**
* Getter for <code>databasir.table_column_document.is_primary_key</code>.
*/
public Boolean getIsPrimaryKey() {
return (Boolean) get(9);
}
/**
* Setter for <code>databasir.table_column_document.nullable</code>. YES,
* NO, UNKNOWN
*/
public void setNullable(String value) {
set(9, value);
set(10, value);
}
/**
@ -167,7 +181,7 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
* NO, UNKNOWN
*/
public String getNullable() {
return (String) get(9);
return (String) get(10);
}
/**
@ -175,7 +189,7 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
* YES, NO, UNKNOWN
*/
public void setAutoIncrement(String value) {
set(10, value);
set(11, value);
}
/**
@ -183,21 +197,21 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
* YES, NO, UNKNOWN
*/
public String getAutoIncrement() {
return (String) get(10);
return (String) get(11);
}
/**
* Setter for <code>databasir.table_column_document.create_at</code>.
*/
public void setCreateAt(LocalDateTime value) {
set(11, value);
set(12, value);
}
/**
* Getter for <code>databasir.table_column_document.create_at</code>.
*/
public LocalDateTime getCreateAt() {
return (LocalDateTime) get(11);
return (LocalDateTime) get(12);
}
// -------------------------------------------------------------------------
@ -210,17 +224,17 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
}
// -------------------------------------------------------------------------
// Record12 type implementation
// Record13 type implementation
// -------------------------------------------------------------------------
@Override
public Row12<Integer, Integer, Integer, String, String, String, String, Integer, Integer, String, String, LocalDateTime> fieldsRow() {
return (Row12) super.fieldsRow();
public Row13<Integer, Integer, Integer, String, String, String, String, Integer, Integer, Boolean, String, String, LocalDateTime> fieldsRow() {
return (Row13) super.fieldsRow();
}
@Override
public Row12<Integer, Integer, Integer, String, String, String, String, Integer, Integer, String, String, LocalDateTime> valuesRow() {
return (Row12) super.valuesRow();
public Row13<Integer, Integer, Integer, String, String, String, String, Integer, Integer, Boolean, String, String, LocalDateTime> valuesRow() {
return (Row13) super.valuesRow();
}
@Override
@ -269,17 +283,22 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
}
@Override
public Field<String> field10() {
return TableColumnDocument.TABLE_COLUMN_DOCUMENT.NULLABLE;
public Field<Boolean> field10() {
return TableColumnDocument.TABLE_COLUMN_DOCUMENT.IS_PRIMARY_KEY;
}
@Override
public Field<String> field11() {
return TableColumnDocument.TABLE_COLUMN_DOCUMENT.NULLABLE;
}
@Override
public Field<String> field12() {
return TableColumnDocument.TABLE_COLUMN_DOCUMENT.AUTO_INCREMENT;
}
@Override
public Field<LocalDateTime> field12() {
public Field<LocalDateTime> field13() {
return TableColumnDocument.TABLE_COLUMN_DOCUMENT.CREATE_AT;
}
@ -329,17 +348,22 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
}
@Override
public String component10() {
return getNullable();
public Boolean component10() {
return getIsPrimaryKey();
}
@Override
public String component11() {
return getNullable();
}
@Override
public String component12() {
return getAutoIncrement();
}
@Override
public LocalDateTime component12() {
public LocalDateTime component13() {
return getCreateAt();
}
@ -389,17 +413,22 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
}
@Override
public String value10() {
return getNullable();
public Boolean value10() {
return getIsPrimaryKey();
}
@Override
public String value11() {
return getNullable();
}
@Override
public String value12() {
return getAutoIncrement();
}
@Override
public LocalDateTime value12() {
public LocalDateTime value13() {
return getCreateAt();
}
@ -458,25 +487,31 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
}
@Override
public TableColumnDocumentRecord value10(String value) {
setNullable(value);
public TableColumnDocumentRecord value10(Boolean value) {
setIsPrimaryKey(value);
return this;
}
@Override
public TableColumnDocumentRecord value11(String value) {
setNullable(value);
return this;
}
@Override
public TableColumnDocumentRecord value12(String value) {
setAutoIncrement(value);
return this;
}
@Override
public TableColumnDocumentRecord value12(LocalDateTime value) {
public TableColumnDocumentRecord value13(LocalDateTime value) {
setCreateAt(value);
return this;
}
@Override
public TableColumnDocumentRecord values(Integer value1, Integer value2, Integer value3, String value4, String value5, String value6, String value7, Integer value8, Integer value9, String value10, String value11, LocalDateTime value12) {
public TableColumnDocumentRecord values(Integer value1, Integer value2, Integer value3, String value4, String value5, String value6, String value7, Integer value8, Integer value9, Boolean value10, String value11, String value12, LocalDateTime value13) {
value1(value1);
value2(value2);
value3(value3);
@ -489,6 +524,7 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
value10(value10);
value11(value11);
value12(value12);
value13(value13);
return this;
}
@ -506,7 +542,7 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
/**
* Create a detached, initialised TableColumnDocumentRecord
*/
public TableColumnDocumentRecord(Integer id, Integer tableDocumentId, Integer databaseDocumentId, String name, String type, String comment, String defaultValue, Integer size, Integer decimalDigits, String nullable, String autoIncrement, LocalDateTime createAt) {
public TableColumnDocumentRecord(Integer id, Integer tableDocumentId, Integer databaseDocumentId, String name, String type, String comment, String defaultValue, Integer size, Integer decimalDigits, Boolean isPrimaryKey, String nullable, String autoIncrement, LocalDateTime createAt) {
super(TableColumnDocument.TABLE_COLUMN_DOCUMENT);
setId(id);
@ -518,6 +554,7 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
setDefaultValue(defaultValue);
setSize(size);
setDecimalDigits(decimalDigits);
setIsPrimaryKey(isPrimaryKey);
setNullable(nullable);
setAutoIncrement(autoIncrement);
setCreateAt(createAt);
@ -539,6 +576,7 @@ public class TableColumnDocumentRecord extends UpdatableRecordImpl<TableColumnDo
setDefaultValue(value.getDefaultValue());
setSize(value.getSize());
setDecimalDigits(value.getDecimalDigits());
setIsPrimaryKey(value.getIsPrimaryKey());
setNullable(value.getNullable());
setAutoIncrement(value.getAutoIncrement());
setCreateAt(value.getCreateAt());

View File

@ -12,8 +12,8 @@ import java.time.LocalDateTime;
import org.jooq.Field;
import org.jooq.JSON;
import org.jooq.Record1;
import org.jooq.Record8;
import org.jooq.Row8;
import org.jooq.Record7;
import org.jooq.Row7;
import org.jooq.impl.UpdatableRecordImpl;
@ -21,7 +21,7 @@ import org.jooq.impl.UpdatableRecordImpl;
* This class is generated by jOOQ.
*/
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocumentRecord> implements Record8<Integer, Integer, Integer, String, Boolean, Boolean, JSON, LocalDateTime> {
public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocumentRecord> implements Record7<Integer, Integer, Integer, String, Boolean, JSON, LocalDateTime> {
private static final long serialVersionUID = 1L;
@ -83,60 +83,46 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
return (String) get(3);
}
/**
* Setter for <code>databasir.table_index_document.is_primary</code>.
*/
public void setIsPrimary(Boolean value) {
set(4, value);
}
/**
* Getter for <code>databasir.table_index_document.is_primary</code>.
*/
public Boolean getIsPrimary() {
return (Boolean) get(4);
}
/**
* Setter for <code>databasir.table_index_document.is_unique</code>.
*/
public void setIsUnique(Boolean value) {
set(5, value);
set(4, value);
}
/**
* Getter for <code>databasir.table_index_document.is_unique</code>.
*/
public Boolean getIsUnique() {
return (Boolean) get(5);
return (Boolean) get(4);
}
/**
* Setter for <code>databasir.table_index_document.column_name_array</code>.
*/
public void setColumnNameArray(JSON value) {
set(6, value);
set(5, value);
}
/**
* Getter for <code>databasir.table_index_document.column_name_array</code>.
*/
public JSON getColumnNameArray() {
return (JSON) get(6);
return (JSON) get(5);
}
/**
* Setter for <code>databasir.table_index_document.create_at</code>.
*/
public void setCreateAt(LocalDateTime value) {
set(7, value);
set(6, value);
}
/**
* Getter for <code>databasir.table_index_document.create_at</code>.
*/
public LocalDateTime getCreateAt() {
return (LocalDateTime) get(7);
return (LocalDateTime) get(6);
}
// -------------------------------------------------------------------------
@ -149,17 +135,17 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
}
// -------------------------------------------------------------------------
// Record8 type implementation
// Record7 type implementation
// -------------------------------------------------------------------------
@Override
public Row8<Integer, Integer, Integer, String, Boolean, Boolean, JSON, LocalDateTime> fieldsRow() {
return (Row8) super.fieldsRow();
public Row7<Integer, Integer, Integer, String, Boolean, JSON, LocalDateTime> fieldsRow() {
return (Row7) super.fieldsRow();
}
@Override
public Row8<Integer, Integer, Integer, String, Boolean, Boolean, JSON, LocalDateTime> valuesRow() {
return (Row8) super.valuesRow();
public Row7<Integer, Integer, Integer, String, Boolean, JSON, LocalDateTime> valuesRow() {
return (Row7) super.valuesRow();
}
@Override
@ -184,21 +170,16 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
@Override
public Field<Boolean> field5() {
return TableIndexDocument.TABLE_INDEX_DOCUMENT.IS_PRIMARY;
}
@Override
public Field<Boolean> field6() {
return TableIndexDocument.TABLE_INDEX_DOCUMENT.IS_UNIQUE;
}
@Override
public Field<JSON> field7() {
public Field<JSON> field6() {
return TableIndexDocument.TABLE_INDEX_DOCUMENT.COLUMN_NAME_ARRAY;
}
@Override
public Field<LocalDateTime> field8() {
public Field<LocalDateTime> field7() {
return TableIndexDocument.TABLE_INDEX_DOCUMENT.CREATE_AT;
}
@ -224,21 +205,16 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
@Override
public Boolean component5() {
return getIsPrimary();
}
@Override
public Boolean component6() {
return getIsUnique();
}
@Override
public JSON component7() {
public JSON component6() {
return getColumnNameArray();
}
@Override
public LocalDateTime component8() {
public LocalDateTime component7() {
return getCreateAt();
}
@ -264,21 +240,16 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
@Override
public Boolean value5() {
return getIsPrimary();
}
@Override
public Boolean value6() {
return getIsUnique();
}
@Override
public JSON value7() {
public JSON value6() {
return getColumnNameArray();
}
@Override
public LocalDateTime value8() {
public LocalDateTime value7() {
return getCreateAt();
}
@ -308,30 +279,24 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
@Override
public TableIndexDocumentRecord value5(Boolean value) {
setIsPrimary(value);
return this;
}
@Override
public TableIndexDocumentRecord value6(Boolean value) {
setIsUnique(value);
return this;
}
@Override
public TableIndexDocumentRecord value7(JSON value) {
public TableIndexDocumentRecord value6(JSON value) {
setColumnNameArray(value);
return this;
}
@Override
public TableIndexDocumentRecord value8(LocalDateTime value) {
public TableIndexDocumentRecord value7(LocalDateTime value) {
setCreateAt(value);
return this;
}
@Override
public TableIndexDocumentRecord values(Integer value1, Integer value2, Integer value3, String value4, Boolean value5, Boolean value6, JSON value7, LocalDateTime value8) {
public TableIndexDocumentRecord values(Integer value1, Integer value2, Integer value3, String value4, Boolean value5, JSON value6, LocalDateTime value7) {
value1(value1);
value2(value2);
value3(value3);
@ -339,7 +304,6 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
value5(value5);
value6(value6);
value7(value7);
value8(value8);
return this;
}
@ -357,14 +321,13 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
/**
* Create a detached, initialised TableIndexDocumentRecord
*/
public TableIndexDocumentRecord(Integer id, Integer tableDocumentId, Integer databaseDocumentId, String name, Boolean isPrimary, Boolean isUnique, JSON columnNameArray, LocalDateTime createAt) {
public TableIndexDocumentRecord(Integer id, Integer tableDocumentId, Integer databaseDocumentId, String name, Boolean isUnique, JSON columnNameArray, LocalDateTime createAt) {
super(TableIndexDocument.TABLE_INDEX_DOCUMENT);
setId(id);
setTableDocumentId(tableDocumentId);
setDatabaseDocumentId(databaseDocumentId);
setName(name);
setIsPrimary(isPrimary);
setIsUnique(isUnique);
setColumnNameArray(columnNameArray);
setCreateAt(createAt);
@ -381,7 +344,6 @@ public class TableIndexDocumentRecord extends UpdatableRecordImpl<TableIndexDocu
setTableDocumentId(value.getTableDocumentId());
setDatabaseDocumentId(value.getDatabaseDocumentId());
setName(value.getName());
setIsPrimary(value.getIsPrimary());
setIsUnique(value.getIsUnique());
setColumnNameArray(value.getColumnNameArray());
setCreateAt(value.getCreateAt());

View File

@ -4,6 +4,7 @@ package com.databasir.dao.impl;
import com.databasir.dao.exception.DataNotExistsException;
import lombok.RequiredArgsConstructor;
import org.jooq.*;
import org.jooq.Record;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;

View File

@ -167,6 +167,7 @@ CREATE TABLE table_column_document
default_value VARCHAR(512) DEFAULT NULL,
size INT NOT NULL,
decimal_digits INT DEFAULT NULL,
is_primary_key BOOLEAN NOT NULL,
nullable VARCHAR(64) NOT NULL COMMENT 'YES, NO, UNKNOWN',
auto_increment VARCHAR(64) NOT NULL COMMENT 'YES, NO, UNKNOWN',
create_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
@ -182,7 +183,6 @@ CREATE TABLE table_index_document
table_document_id INT NOT NULL,
database_document_id INT NOT NULL,
name TEXT NOT NULL,
is_primary BOOLEAN NOT NULL,
is_unique BOOLEAN NOT NULL,
column_name_array JSON NOT NULL,
create_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,

View File

@ -26,4 +26,5 @@ public class ColumnMeta {
private String autoIncrement;
private Boolean isPrimaryKey;
}

View File

@ -15,7 +15,5 @@ public class IndexMeta {
@Builder.Default
private List<String> columnNames = Collections.emptyList();
private Boolean isPrimaryKey;
private Boolean isUniqueKey;
}

View File

@ -7,6 +7,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
@ -29,6 +30,7 @@ public class JdbcColumnMetaRepository implements ColumnMetaRepository {
List<ColumnMeta> columnDocs = new ArrayList<>();
String databaseName = tableCondition.getDatabaseName();
String tableName = tableCondition.getTableName();
List<String> primaryKeyColumns = selectPrimaryKeyColumns(connection.getMetaData(), databaseName, tableName);
ResultSet columnsResult;
try {
columnsResult = connection.getMetaData().getColumns(databaseName, null, tableName, null);
@ -73,6 +75,7 @@ public class JdbcColumnMetaRepository implements ColumnMetaRepository {
.autoIncrement(isAutoIncrement)
.comment(columnComment)
.defaultValue(defaultValue)
.isPrimaryKey(primaryKeyColumns.contains(columnName))
.build();
columnDocs.add(columnMeta);
}
@ -80,4 +83,14 @@ public class JdbcColumnMetaRepository implements ColumnMetaRepository {
}
return columnDocs;
}
private List<String> selectPrimaryKeyColumns(DatabaseMetaData meta, String catalog, String tableName) throws SQLException {
ResultSet result = meta.getPrimaryKeys(catalog, null, tableName);
List<String> columns = new ArrayList<>();
while (result.next()) {
String columnName = result.getString("COLUMN_NAME");
columns.add(columnName);
}
return columns;
}
}

View File

@ -47,7 +47,6 @@ public class JdbcIndexMetaRepository implements IndexMetaRepository {
IndexMeta indexMeta = IndexMeta.builder()
.name(indexName)
.columnNames(columns)
.isPrimaryKey(Objects.equals("PRIMARY", indexName))
.isUniqueKey(Objects.equals(nonUnique, false))
.build();
pojoGroupByName.put(indexName, indexMeta);

View File

@ -57,7 +57,6 @@ public class RenderConfig {
protected LinkedHashMap<String, Function<IndexMeta, String>> indexTitleAndValueMapping() {
LinkedHashMap<String, Function<IndexMeta, String>> mapping = new LinkedHashMap<>();
mapping.put("Name", IndexMeta::getName);
mapping.put("IsPrimary", index -> index.getIsPrimaryKey() ? "YES" : "");
mapping.put("IsUnique", index -> index.getIsUniqueKey() ? "YES" : "");
mapping.put("Columns", index -> String.join(", ", index.getColumnNames()));
return mapping;

View File

@ -33,7 +33,7 @@ public class App {
// this config is used by mysql
info.put("useInformationSchema", "true");
String url = "jdbc:mysql://localhost:3306/patient?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true";
String url = "jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true";
return DriverManager.getConnection(url, info);
}
}

0
plugin/user.md Normal file
View File