333
schangxiang@126.com
2025-09-19 18966e02fb573c7e2bb0c6426ed792b38b910940
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import { Table } from "../schema-builder/table/Table";
/**
 * Naming strategy defines how auto-generated names for such things like table name, or table column gonna be
 * generated.
 */
export interface NamingStrategyInterface {
    /**
     * Naming strategy name.
     */
    name?: string;
    /**
     * Normalizes table name.
     *
     * @param targetName Name of the target entity that can be used to generate a table name.
     * @param userSpecifiedName For example if user specified a table name in a decorator, e.g. @Entity("name")
     */
    tableName(targetName: string, userSpecifiedName: string | undefined): string;
    /**
     * Creates a table name for a junction table of a closure table.
     *
     * @param originalClosureTableName Name of the closure table which owns this junction table.
     */
    closureJunctionTableName(originalClosureTableName: string): string;
    /**
     * Gets the table's column name from the given property name.
     */
    columnName(propertyName: string, customName: string | undefined, embeddedPrefixes: string[]): string;
    /**
     * Gets the table's relation name from the given property name.
     */
    relationName(propertyName: string): string;
    /**
     * Gets the table's primary key name from the given table name and column names.
     */
    primaryKeyName(tableOrName: Table | string, columnNames: string[]): string;
    /**
     * Gets the table's unique constraint name from the given table name and column names.
     */
    uniqueConstraintName(tableOrName: Table | string, columnNames: string[]): string;
    /**
     * Gets the relation constraint (UNIQUE or UNIQUE INDEX) name from the given table name, column names
     * and WHERE condition, if UNIQUE INDEX used.
     */
    relationConstraintName(tableOrName: Table | string, columnNames: string[], where?: string): string;
    /**
     * Gets the table's default constraint name from the given table name and column name.
     */
    defaultConstraintName(tableOrName: Table | string, columnName: string): string;
    /**
     * Gets the name of the foreign key.
     */
    foreignKeyName(tableOrName: Table | string, columnNames: string[]): string;
    /**
     * Gets the name of the index - simple and compose index.
     */
    indexName(tableOrName: Table | string, columns: string[], where?: string): string;
    /**
     * Gets the name of the check constraint.
     */
    checkConstraintName(tableOrName: Table | string, expression: string): string;
    /**
     * Gets the name of the exclusion constraint.
     */
    exclusionConstraintName(tableOrName: Table | string, expression: string): string;
    /**
     * Gets the name of the join column used in the one-to-one and many-to-one relations.
     */
    joinColumnName(relationName: string, referencedColumnName: string): string;
    /**
     * Gets the name of the join table used in the many-to-many relations.
     */
    joinTableName(firstTableName: string, secondTableName: string, firstPropertyName: string, secondPropertyName: string): string;
    /**
     * Columns in join tables can have duplicate names in case of self-referencing.
     * This method provide a resolution for such column names.
     */
    joinTableColumnDuplicationPrefix(columnName: string, index: number): string;
    /**
     * Gets the name of the column used for columns in the junction tables.
     *
     * The reverse?:boolean parameter denotes if the joinTableColumnName is called for the junctionColumn (false)
     * or the inverseJunctionColumns (true)
     */
    joinTableColumnName(tableName: string, propertyName: string, columnName?: string): string;
    /**
     * Gets the name of the column used for columns in the junction tables from the invers side of the relationship.
     */
    joinTableInverseColumnName(tableName: string, propertyName: string, columnName?: string): string;
    /**
     * Adds globally set prefix to the table name.
     * This method is executed no matter if prefix was set or not.
     * Table name is either user's given table name, either name generated from entity target.
     * Note that table name comes here already normalized by #tableName method.
     */
    prefixTableName(prefix: string, tableName: string): string;
}