[#1133] Compilation errors in generated source code if the same constraint name exists in several schemata
This commit is contained in:
parent
c40db95450
commit
e29b417823
@ -48,9 +48,9 @@ public class DefaultRelations implements Relations {
|
||||
|
||||
private static final JooqLogger log = JooqLogger.getLogger(DefaultRelations.class);
|
||||
|
||||
private Map<String, ForeignKeyDefinition> foreignKeys = new LinkedHashMap<String, ForeignKeyDefinition>();
|
||||
private Map<String, UniqueKeyDefinition> primaryKeys = new LinkedHashMap<String, UniqueKeyDefinition>();
|
||||
private Map<String, UniqueKeyDefinition> uniqueKeys = new LinkedHashMap<String, UniqueKeyDefinition>();
|
||||
private Map<Key, ForeignKeyDefinition> foreignKeys = new LinkedHashMap<Key, ForeignKeyDefinition>();
|
||||
private Map<Key, UniqueKeyDefinition> primaryKeys = new LinkedHashMap<Key, UniqueKeyDefinition>();
|
||||
private Map<Key, UniqueKeyDefinition> uniqueKeys = new LinkedHashMap<Key, UniqueKeyDefinition>();
|
||||
|
||||
private Map<ColumnDefinition, ForeignKeyDefinition> foreignKeysByColumn = new LinkedHashMap<ColumnDefinition, ForeignKeyDefinition>();
|
||||
private Map<ColumnDefinition, UniqueKeyDefinition> primaryKeysByColumn = new LinkedHashMap<ColumnDefinition, UniqueKeyDefinition>();
|
||||
@ -75,41 +75,46 @@ public class DefaultRelations implements Relations {
|
||||
}
|
||||
|
||||
private UniqueKeyDefinition getUniqueKey(String keyName, ColumnDefinition column, boolean isPK) {
|
||||
UniqueKeyDefinition key = uniqueKeys.get(keyName);
|
||||
UniqueKeyDefinition key = uniqueKeys.get(key(column, keyName));
|
||||
|
||||
if (key == null) {
|
||||
key = new DefaultUniqueKeyDefinition(column.getSchema(), keyName, column.getContainer());
|
||||
uniqueKeys.put(keyName, key);
|
||||
uniqueKeys.put(key(column, keyName), key);
|
||||
|
||||
if (isPK) {
|
||||
primaryKeys.put(keyName, key);
|
||||
primaryKeys.put(key(column, keyName), key);
|
||||
}
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
public void addForeignKey(String foreignKeyName, String uniqueKeyName, ColumnDefinition column) {
|
||||
public void addForeignKey(
|
||||
String foreignKeyName,
|
||||
String uniqueKeyName,
|
||||
ColumnDefinition foreignKeyColumn,
|
||||
SchemaDefinition uniqueKeySchema) {
|
||||
|
||||
if (log.isDebugEnabled()) {
|
||||
log.debug("Adding foreign key", foreignKeyName + " (" + column + ") referencing " + uniqueKeyName);
|
||||
log.debug("Adding foreign key", foreignKeyName + " (" + foreignKeyColumn + ") referencing " + uniqueKeyName);
|
||||
}
|
||||
|
||||
ForeignKeyDefinition foreignKey = foreignKeys.get(foreignKeyName);
|
||||
ForeignKeyDefinition foreignKey = foreignKeys.get(key(foreignKeyColumn, foreignKeyName));
|
||||
|
||||
if (foreignKey == null) {
|
||||
UniqueKeyDefinition uniqueKey = uniqueKeys.get(uniqueKeyName);
|
||||
UniqueKeyDefinition uniqueKey = uniqueKeys.get(key(uniqueKeySchema, uniqueKeyName));
|
||||
|
||||
// If the unique key is not loaded, ignore this foreign key
|
||||
if (uniqueKey != null) {
|
||||
foreignKey = new DefaultForeignKeyDefinition(column.getSchema(), foreignKeyName, column.getContainer(), uniqueKey);
|
||||
foreignKeys.put(foreignKeyName, foreignKey);
|
||||
foreignKey = new DefaultForeignKeyDefinition(foreignKeyColumn.getSchema(), foreignKeyName, foreignKeyColumn.getContainer(), uniqueKey);
|
||||
foreignKeys.put(key(foreignKeyColumn, foreignKeyName), foreignKey);
|
||||
|
||||
uniqueKey.getForeignKeys().add(foreignKey);
|
||||
}
|
||||
}
|
||||
|
||||
if (foreignKey != null) {
|
||||
foreignKey.getKeyColumns().add(column);
|
||||
foreignKey.getKeyColumns().add(foreignKeyColumn);
|
||||
}
|
||||
}
|
||||
|
||||
@ -191,4 +196,59 @@ public class DefaultRelations implements Relations {
|
||||
|
||||
return new ArrayList<ForeignKeyDefinition>(result);
|
||||
}
|
||||
|
||||
private static Key key(Definition definition, String keyName) {
|
||||
return new Key(definition.getSchema(), keyName);
|
||||
}
|
||||
|
||||
/**
|
||||
* A simple local wrapper for a key definition (schema + key name)
|
||||
*/
|
||||
private static class Key {
|
||||
final SchemaDefinition schema;
|
||||
final String keyName;
|
||||
|
||||
Key(SchemaDefinition schema, String keyName) {
|
||||
this.schema = schema;
|
||||
this.keyName = keyName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Key [schema=" + schema + ", keyName=" + keyName + "]";
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((keyName == null) ? 0 : keyName.hashCode());
|
||||
result = prime * result + ((schema == null) ? 0 : schema.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
Key other = (Key) obj;
|
||||
if (keyName == null) {
|
||||
if (other.keyName != null)
|
||||
return false;
|
||||
}
|
||||
else if (!keyName.equals(other.keyName))
|
||||
return false;
|
||||
if (schema == null) {
|
||||
if (other.schema != null)
|
||||
return false;
|
||||
}
|
||||
else if (!schema.equals(other.schema))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -205,7 +205,7 @@ public class ASEDatabase extends AbstractDatabase {
|
||||
String uniqueKeyName = record.getValueAsString("pk");
|
||||
|
||||
ColumnDefinition column = referencingTable.getColumn(foreignKeyColumnName);
|
||||
relations.addForeignKey(foreignKeyName, uniqueKeyName, column);
|
||||
relations.addForeignKey(foreignKeyName, uniqueKeyName, column, getSchema());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,7 +149,8 @@ public class DB2Database extends AbstractDatabase {
|
||||
References.TABSCHEMA.trim(),
|
||||
References.TABNAME,
|
||||
References.FK_COLNAMES,
|
||||
concat(References.REFTABNAME, val("__"), References.REFKEYNAME).as("referenced_constraint_name"))
|
||||
concat(References.REFTABNAME, val("__"), References.REFKEYNAME).as("referenced_constraint_name"),
|
||||
References.REFTABSCHEMA.trim())
|
||||
.from(REFERENCES)
|
||||
.where(References.TABSCHEMA.in(getInputSchemata()))
|
||||
.orderBy(
|
||||
@ -159,13 +160,15 @@ public class DB2Database extends AbstractDatabase {
|
||||
References.FK_COLNAMES)
|
||||
.fetch()) {
|
||||
|
||||
SchemaDefinition schema = getSchema(record.getValue(References.TABSCHEMA.trim()));
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(References.TABSCHEMA.trim()));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(References.REFTABSCHEMA.trim()));
|
||||
|
||||
String foreignKey = record.getValue("constraint_name", String.class);
|
||||
String foreignKeyTableName = record.getValue(References.TABNAME);
|
||||
String foreignKeyColumn = record.getValue(References.FK_COLNAMES);
|
||||
String uniqueKey = record.getValue("referenced_constraint_name", String.class);
|
||||
|
||||
TableDefinition foreignKeyTable = getTable(schema, foreignKeyTableName);
|
||||
TableDefinition foreignKeyTable = getTable(foreignKeySchema, foreignKeyTableName);
|
||||
|
||||
if (foreignKeyTable != null) {
|
||||
/*
|
||||
@ -178,7 +181,7 @@ public class DB2Database extends AbstractDatabase {
|
||||
for (int i = 0; i < referencingColumnNames.length; i++) {
|
||||
ColumnDefinition column = foreignKeyTable.getColumn(referencingColumnNames[i]);
|
||||
|
||||
relations.addForeignKey(foreignKey, uniqueKey, column);
|
||||
relations.addForeignKey(foreignKey, uniqueKey, column, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,39 +144,44 @@ public class DerbyDatabase extends AbstractDatabase {
|
||||
|
||||
@Override
|
||||
protected void loadForeignKeys(DefaultRelations relations) throws SQLException {
|
||||
Field<String> foreignKey = field("fc.constraintname", String.class);
|
||||
Field<String> foreignKeyTable = field("ft.tablename", String.class);
|
||||
Field<String> foreignKeySchema = field("fs.schemaname", String.class);
|
||||
Field<?> foreignKeyDescriptor = field("fg.descriptor");
|
||||
Field<String> uniqueKey = field("pc.constraintname", String.class);
|
||||
Field<String> fkName = field("fc.constraintname", String.class);
|
||||
Field<String> fkTable = field("ft.tablename", String.class);
|
||||
Field<String> fkSchema = field("fs.schemaname", String.class);
|
||||
Field<?> fkDescriptor = field("fg.descriptor");
|
||||
Field<String> ukName = field("pc.constraintname", String.class);
|
||||
Field<String> ukSchema = field("ps.schemaname", String.class);
|
||||
|
||||
for (Record record : create().select(
|
||||
foreignKey,
|
||||
foreignKeyTable,
|
||||
foreignKeySchema,
|
||||
foreignKeyDescriptor,
|
||||
uniqueKey)
|
||||
fkName,
|
||||
fkTable,
|
||||
fkSchema,
|
||||
fkDescriptor,
|
||||
ukName,
|
||||
ukSchema)
|
||||
.from("sys.sysconstraints fc")
|
||||
.join("sys.sysforeignkeys f ").on("f.constraintid = fc.constraintid")
|
||||
.join("sys.sysconglomerates fg").on("fg.conglomerateid = f.conglomerateid")
|
||||
.join("sys.systables ft").on("ft.tableid = fg.tableid")
|
||||
.join("sys.sysschemas fs").on("ft.schemaid = fs.schemaid")
|
||||
.join("sys.sysconstraints pc").on("pc.constraintid = f.keyconstraintid")
|
||||
.join("sys.sysschemas ps").on("pc.schemaid = ps.schemaid")
|
||||
.where("fc.type = 'F'")
|
||||
.fetch()) {
|
||||
|
||||
SchemaDefinition schema = getSchema(record.getValue(foreignKeySchema));
|
||||
String foreignKeyName = record.getValue(foreignKey);
|
||||
String foreignKeyTableName = record.getValue(foreignKeyTable);
|
||||
List<Integer> foreignKeyIndexes = decode(record.getValueAsString(foreignKeyDescriptor));
|
||||
String uniqueKeyName = record.getValue(uniqueKey);
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(fkSchema));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(ukSchema));
|
||||
|
||||
TableDefinition referencingTable = getTable(schema, foreignKeyTableName);
|
||||
String foreignKeyName = record.getValue(fkName);
|
||||
String foreignKeyTableName = record.getValue(fkTable);
|
||||
List<Integer> foreignKeyIndexes = decode(record.getValueAsString(fkDescriptor));
|
||||
String uniqueKeyName = record.getValue(ukName);
|
||||
|
||||
TableDefinition referencingTable = getTable(foreignKeySchema, foreignKeyTableName);
|
||||
if (referencingTable != null) {
|
||||
for (int i = 0; i < foreignKeyIndexes.size(); i++) {
|
||||
ColumnDefinition column = referencingTable.getColumn(foreignKeyIndexes.get(i));
|
||||
|
||||
relations.addForeignKey(foreignKeyName, uniqueKeyName, column);
|
||||
relations.addForeignKey(foreignKeyName, uniqueKeyName, column, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -142,7 +142,8 @@ public class H2Database extends AbstractDatabase {
|
||||
CrossReferences.FKTABLE_NAME,
|
||||
CrossReferences.FKTABLE_SCHEMA,
|
||||
CrossReferences.FKCOLUMN_NAME,
|
||||
Constraints.CONSTRAINT_NAME)
|
||||
Constraints.CONSTRAINT_NAME,
|
||||
Constraints.CONSTRAINT_SCHEMA)
|
||||
.from(CROSS_REFERENCES)
|
||||
.join(CONSTRAINTS)
|
||||
.on(CrossReferences.PK_NAME.equal(Constraints.UNIQUE_INDEX_NAME))
|
||||
@ -155,18 +156,19 @@ public class H2Database extends AbstractDatabase {
|
||||
CrossReferences.ORDINAL_POSITION.asc())
|
||||
.fetch()) {
|
||||
|
||||
SchemaDefinition schema = getSchema(record.getValue(CrossReferences.FKTABLE_SCHEMA));
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(CrossReferences.FKTABLE_SCHEMA));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(Constraints.CONSTRAINT_SCHEMA));
|
||||
|
||||
String foreignKeyTableName = record.getValue(CrossReferences.FKTABLE_NAME);
|
||||
String foreignKeyColumn = record.getValue(CrossReferences.FKCOLUMN_NAME);
|
||||
String foreignKey = record.getValue(CrossReferences.FK_NAME);
|
||||
String uniqueKey = record.getValue(Constraints.CONSTRAINT_NAME);
|
||||
|
||||
TableDefinition foreignKeyTable = getTable(schema, foreignKeyTableName);
|
||||
TableDefinition foreignKeyTable = getTable(foreignKeySchema, foreignKeyTableName);
|
||||
if (foreignKeyTable != null) {
|
||||
ColumnDefinition referencingColumn = foreignKeyTable.getColumn(foreignKeyColumn);
|
||||
|
||||
relations.addForeignKey(foreignKey, uniqueKey, referencingColumn);
|
||||
relations.addForeignKey(foreignKey, uniqueKey, referencingColumn, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,6 +144,7 @@ public class HSQLDBDatabase extends AbstractDatabase {
|
||||
Result<Record> result = create()
|
||||
.select(
|
||||
REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME,
|
||||
REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA,
|
||||
KEY_COLUMN_USAGE.CONSTRAINT_NAME,
|
||||
KEY_COLUMN_USAGE.TABLE_SCHEMA,
|
||||
KEY_COLUMN_USAGE.TABLE_NAME,
|
||||
@ -161,17 +162,19 @@ public class HSQLDBDatabase extends AbstractDatabase {
|
||||
.fetch();
|
||||
|
||||
for (Record record : result) {
|
||||
SchemaDefinition schema = getSchema(record.getValue(KEY_COLUMN_USAGE.TABLE_SCHEMA));
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(KEY_COLUMN_USAGE.TABLE_SCHEMA));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA));
|
||||
|
||||
String foreignKey = record.getValue(KEY_COLUMN_USAGE.CONSTRAINT_NAME);
|
||||
String foreignKeyTable = record.getValue(KEY_COLUMN_USAGE.TABLE_NAME);
|
||||
String foreignKeyColumn = record.getValue(KEY_COLUMN_USAGE.COLUMN_NAME);
|
||||
String uniqueKey = record.getValue(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME);
|
||||
|
||||
TableDefinition referencingTable = getTable(schema, foreignKeyTable);
|
||||
TableDefinition referencingTable = getTable(foreignKeySchema, foreignKeyTable);
|
||||
|
||||
if (referencingTable != null) {
|
||||
ColumnDefinition referencingColumn = referencingTable.getColumn(foreignKeyColumn);
|
||||
relations.addForeignKey(foreignKey, uniqueKey, referencingColumn);
|
||||
relations.addForeignKey(foreignKey, uniqueKey, referencingColumn, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,6 +149,7 @@ public class IngresDatabase extends AbstractDatabase {
|
||||
trim(IirefConstraints.REF_SCHEMA_NAME),
|
||||
trim(IirefConstraints.REF_CONSTRAINT_NAME),
|
||||
trim(IirefConstraints.UNIQUE_CONSTRAINT_NAME),
|
||||
trim(IirefConstraints.UNIQUE_SCHEMA_NAME),
|
||||
trim(IirefConstraints.REF_TABLE_NAME),
|
||||
trim(IiindexColumns.COLUMN_NAME))
|
||||
.from(IICONSTRAINTS)
|
||||
@ -174,17 +175,19 @@ public class IngresDatabase extends AbstractDatabase {
|
||||
.fetch();
|
||||
|
||||
for (Record record : result) {
|
||||
SchemaDefinition schema = getSchema(record.getValue(trim(IirefConstraints.REF_SCHEMA_NAME)));
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(trim(IirefConstraints.REF_SCHEMA_NAME)));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(trim(IirefConstraints.UNIQUE_SCHEMA_NAME)));
|
||||
|
||||
String foreignKey = record.getValue(trim(IirefConstraints.REF_CONSTRAINT_NAME));
|
||||
String foreignKeyTable = record.getValue(trim(IirefConstraints.REF_TABLE_NAME));
|
||||
String foreignKeyColumn = record.getValue(trim(IiindexColumns.COLUMN_NAME));
|
||||
String uniqueKey = record.getValue(trim(IirefConstraints.UNIQUE_CONSTRAINT_NAME));
|
||||
|
||||
TableDefinition referencingTable = getTable(schema, foreignKeyTable);
|
||||
TableDefinition referencingTable = getTable(foreignKeySchema, foreignKeyTable);
|
||||
|
||||
if (referencingTable != null) {
|
||||
ColumnDefinition referencingColumn = referencingTable.getColumn(foreignKeyColumn);
|
||||
relations.addForeignKey(foreignKey, uniqueKey, referencingColumn);
|
||||
relations.addForeignKey(foreignKey, uniqueKey, referencingColumn, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,6 +141,7 @@ public class MySQLDatabase extends AbstractDatabase {
|
||||
ReferentialConstraints.TABLE_NAME,
|
||||
ReferentialConstraints.REFERENCED_TABLE_NAME,
|
||||
ReferentialConstraints.UNIQUE_CONSTRAINT_NAME,
|
||||
ReferentialConstraints.UNIQUE_CONSTRAINT_SCHEMA,
|
||||
KeyColumnUsage.COLUMN_NAME)
|
||||
.from(REFERENTIAL_CONSTRAINTS)
|
||||
.join(KEY_COLUMN_USAGE)
|
||||
@ -153,7 +154,8 @@ public class MySQLDatabase extends AbstractDatabase {
|
||||
KeyColumnUsage.ORDINAL_POSITION.asc())
|
||||
.fetch()) {
|
||||
|
||||
SchemaDefinition schema = getSchema(record.getValue(ReferentialConstraints.CONSTRAINT_SCHEMA));
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(ReferentialConstraints.CONSTRAINT_SCHEMA));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(ReferentialConstraints.UNIQUE_CONSTRAINT_SCHEMA));
|
||||
|
||||
String foreignKey = record.getValue(ReferentialConstraints.CONSTRAINT_NAME);
|
||||
String foreignKeyColumn = record.getValue(KeyColumnUsage.COLUMN_NAME);
|
||||
@ -161,13 +163,13 @@ public class MySQLDatabase extends AbstractDatabase {
|
||||
String referencedKey = record.getValue(ReferentialConstraints.UNIQUE_CONSTRAINT_NAME);
|
||||
String referencedTableName = record.getValue(ReferentialConstraints.REFERENCED_TABLE_NAME);
|
||||
|
||||
TableDefinition foreignKeyTable = getTable(schema, foreignKeyTableName);
|
||||
TableDefinition foreignKeyTable = getTable(foreignKeySchema, foreignKeyTableName);
|
||||
|
||||
if (foreignKeyTable != null) {
|
||||
ColumnDefinition column = foreignKeyTable.getColumn(foreignKeyColumn);
|
||||
|
||||
String key = getKeyName(referencedTableName, referencedKey);
|
||||
relations.addForeignKey(foreignKey, key, column);
|
||||
relations.addForeignKey(foreignKey, key, column, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -141,7 +141,8 @@ public class OracleDatabase extends AbstractDatabase {
|
||||
ALL_CONS_COLUMNS.CONSTRAINT_NAME,
|
||||
ALL_CONS_COLUMNS.TABLE_NAME,
|
||||
ALL_CONS_COLUMNS.COLUMN_NAME,
|
||||
ALL_CONSTRAINTS.R_CONSTRAINT_NAME)
|
||||
ALL_CONSTRAINTS.R_CONSTRAINT_NAME,
|
||||
ALL_CONSTRAINTS.R_OWNER)
|
||||
.from(ALL_CONSTRAINTS
|
||||
.join(ALL_CONS_COLUMNS)
|
||||
.on(ALL_CONSTRAINTS.OWNER.equal(ALL_CONS_COLUMNS.OWNER))
|
||||
@ -156,16 +157,18 @@ public class OracleDatabase extends AbstractDatabase {
|
||||
ALL_CONS_COLUMNS.POSITION)
|
||||
.fetch()) {
|
||||
|
||||
SchemaDefinition schema = getSchema(record.getValue(ALL_CONS_COLUMNS.OWNER));
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(ALL_CONS_COLUMNS.OWNER));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(ALL_CONSTRAINTS.R_OWNER));
|
||||
|
||||
String foreignKeyName = record.getValue(ALL_CONS_COLUMNS.CONSTRAINT_NAME);
|
||||
String foreignKeyTableName = record.getValue(ALL_CONS_COLUMNS.TABLE_NAME);
|
||||
String foreignKeyColumnName = record.getValue(ALL_CONS_COLUMNS.COLUMN_NAME);
|
||||
String uniqueKeyName = record.getValue(ALL_CONSTRAINTS.R_CONSTRAINT_NAME);
|
||||
|
||||
TableDefinition referencingTable = getTable(schema, foreignKeyTableName);
|
||||
TableDefinition referencingTable = getTable(foreignKeySchema, foreignKeyTableName);
|
||||
if (referencingTable != null) {
|
||||
ColumnDefinition column = referencingTable.getColumn(foreignKeyColumnName);
|
||||
relations.addForeignKey(foreignKeyName, uniqueKeyName, column);
|
||||
relations.addForeignKey(foreignKeyName, uniqueKeyName, column, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -144,6 +144,7 @@ public class PostgresDatabase extends AbstractDatabase {
|
||||
Result<Record> result = create()
|
||||
.select(
|
||||
REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME,
|
||||
REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA,
|
||||
KEY_COLUMN_USAGE.CONSTRAINT_NAME,
|
||||
KEY_COLUMN_USAGE.TABLE_SCHEMA,
|
||||
KEY_COLUMN_USAGE.TABLE_NAME,
|
||||
@ -161,20 +162,22 @@ public class PostgresDatabase extends AbstractDatabase {
|
||||
.fetch();
|
||||
|
||||
for (Record record : result) {
|
||||
SchemaDefinition schema = getSchema(record.getValue(KEY_COLUMN_USAGE.TABLE_SCHEMA));
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(KEY_COLUMN_USAGE.TABLE_SCHEMA));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA));
|
||||
|
||||
String foreignKey = record.getValue(KEY_COLUMN_USAGE.CONSTRAINT_NAME);
|
||||
String foreignKeyTable = record.getValue(KEY_COLUMN_USAGE.TABLE_NAME);
|
||||
String foreignKeyColumn = record.getValue(KEY_COLUMN_USAGE.COLUMN_NAME);
|
||||
String uniqueKey = record.getValue(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME);
|
||||
|
||||
TableDefinition referencingTable = getTable(schema, foreignKeyTable);
|
||||
TableDefinition referencingTable = getTable(foreignKeySchema, foreignKeyTable);
|
||||
|
||||
if (referencingTable != null) {
|
||||
|
||||
// [#986] Add the table name as a namespace prefix to the key
|
||||
// name. In Postgres, foreign key names are only unique per table
|
||||
ColumnDefinition referencingColumn = referencingTable.getColumn(foreignKeyColumn);
|
||||
relations.addForeignKey(foreignKeyTable + "__" + foreignKey, uniqueKey, referencingColumn);
|
||||
relations.addForeignKey(foreignKeyTable + "__" + foreignKey, uniqueKey, referencingColumn, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,6 +143,7 @@ public class SQLServerDatabase extends AbstractDatabase {
|
||||
.select(
|
||||
REFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME,
|
||||
REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME,
|
||||
REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA,
|
||||
KEY_COLUMN_USAGE.TABLE_SCHEMA,
|
||||
KEY_COLUMN_USAGE.TABLE_NAME,
|
||||
KEY_COLUMN_USAGE.COLUMN_NAME)
|
||||
@ -159,17 +160,19 @@ public class SQLServerDatabase extends AbstractDatabase {
|
||||
.fetch();
|
||||
|
||||
for (Record record : result) {
|
||||
SchemaDefinition schema = getSchema(record.getValue(KEY_COLUMN_USAGE.TABLE_SCHEMA));
|
||||
SchemaDefinition foreignKeySchema = getSchema(record.getValue(KEY_COLUMN_USAGE.TABLE_SCHEMA));
|
||||
SchemaDefinition uniqueKeySchema = getSchema(record.getValue(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_SCHEMA));
|
||||
|
||||
String foreignKey = record.getValue(REFERENTIAL_CONSTRAINTS.CONSTRAINT_NAME);
|
||||
String foreignKeyTable = record.getValue(KEY_COLUMN_USAGE.TABLE_NAME);
|
||||
String foreignKeyColumn = record.getValue(KEY_COLUMN_USAGE.COLUMN_NAME);
|
||||
String uniqueKey = record.getValue(REFERENTIAL_CONSTRAINTS.UNIQUE_CONSTRAINT_NAME);
|
||||
|
||||
TableDefinition referencingTable = getTable(schema, foreignKeyTable);
|
||||
TableDefinition referencingTable = getTable(foreignKeySchema, foreignKeyTable);
|
||||
|
||||
if (referencingTable != null) {
|
||||
ColumnDefinition referencingColumn = referencingTable.getColumn(foreignKeyColumn);
|
||||
relations.addForeignKey(foreignKey, uniqueKey, referencingColumn);
|
||||
relations.addForeignKey(foreignKey, uniqueKey, referencingColumn, uniqueKeySchema);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -204,7 +204,7 @@ public class SybaseDatabase extends AbstractDatabase {
|
||||
|
||||
if (foreignKeyTable != null) {
|
||||
ColumnDefinition referencingColumn = foreignKeyTable.getColumn(foreignKeyColumn);
|
||||
relations.addForeignKey(foreignKey, referencedKey, referencingColumn);
|
||||
relations.addForeignKey(foreignKey, referencedKey, referencingColumn, getSchema());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,6 +12,8 @@ DROP SEQUENCE s_triggers_sequence/
|
||||
DROP TRIGGER t_triggers_trigger/
|
||||
|
||||
DROP TABLE multi_schema.t_book_sale/
|
||||
DROP TABLE multi_schema.t_book/
|
||||
DROP TABLE multi_schema.t_author/
|
||||
|
||||
DROP TABLE t_triggers/
|
||||
DROP TABLE t_arrays/
|
||||
@ -471,8 +473,9 @@ COMMENT ON COLUMN t_book_to_book_store.book_store_name IS 'The book store name'/
|
||||
COMMENT ON COLUMN t_book_to_book_store.book_id IS 'The book ID'/
|
||||
COMMENT ON COLUMN t_book_to_book_store.stock IS 'The number of books on stock'/
|
||||
|
||||
GRANT ALL ON T_BOOK_TO_BOOK_STORE TO MULTI_SCHEMA
|
||||
/
|
||||
GRANT ALL ON T_BOOK_TO_BOOK_STORE TO MULTI_SCHEMA/
|
||||
GRANT ALL ON T_BOOK_DETAILS TO MULTI_SCHEMA/
|
||||
GRANT ALL ON T_LANGUAGE TO MULTI_SCHEMA/
|
||||
|
||||
CREATE TABLE MULTI_SCHEMA.T_BOOK_SALE (
|
||||
ID NUMBER(7) NOT NULL,
|
||||
@ -486,6 +489,36 @@ CREATE TABLE MULTI_SCHEMA.T_BOOK_SALE (
|
||||
)
|
||||
/
|
||||
|
||||
CREATE TABLE MULTI_SCHEMA.t_author (
|
||||
id NUMBER(7) NOT NULL,
|
||||
first_name VARCHAR2(50),
|
||||
last_name VARCHAR2(50) NOT NULL,
|
||||
date_of_birth DATE,
|
||||
year_of_birth NUMBER(7),
|
||||
address test.u_address_type,
|
||||
|
||||
CONSTRAINT pk_t_author PRIMARY KEY (ID)
|
||||
)
|
||||
/
|
||||
|
||||
CREATE TABLE MULTI_SCHEMA.t_book (
|
||||
id NUMBER(7) NOT NULL,
|
||||
author_id NUMBER(7) NOT NULL,
|
||||
co_author_id NUMBER(7),
|
||||
details_id NUMBER(7),
|
||||
title VARCHAR2(400) NOT NULL,
|
||||
published_in NUMBER(7) NOT NULL,
|
||||
language_id NUMBER(7) NOT NULL,
|
||||
content_text CLOB,
|
||||
content_pdf BLOB,
|
||||
|
||||
CONSTRAINT pk_t_book PRIMARY KEY (ID),
|
||||
CONSTRAINT fk_t_book_author_id FOREIGN KEY (AUTHOR_ID) REFERENCES T_AUTHOR(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT fk_t_book_co_author_id FOREIGN KEY (CO_AUTHOR_ID) REFERENCES T_AUTHOR(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT fk_t_book_details_id FOREIGN KEY (DETAILS_ID) REFERENCES TEST.T_BOOK_DETAILS(ID) ON DELETE CASCADE,
|
||||
CONSTRAINT fk_t_book_language_id FOREIGN KEY (LANGUAGE_ID) REFERENCES TEST.T_LANGUAGE(ID) ON DELETE CASCADE
|
||||
)
|
||||
/
|
||||
|
||||
CREATE TABLE t_arrays (
|
||||
id NUMBER(7) not null,
|
||||
|
||||
@ -14,9 +14,13 @@ public class Keys extends org.jooq.impl.AbstractKeys {
|
||||
// IDENTITY definitions
|
||||
|
||||
// UNIQUE and PRIMARY KEY definitions
|
||||
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord> PK_T_AUTHOR = createUniqueKey(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ID);
|
||||
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord> PK_T_BOOK = createUniqueKey(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.ID);
|
||||
public static final org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookSaleRecord> PK_T_BOOK_SALE = createUniqueKey(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBookSale.T_BOOK_SALE, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBookSale.T_BOOK_SALE.ID);
|
||||
|
||||
// FOREIGN KEY definitions
|
||||
public static final org.jooq.ForeignKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord> FK_T_BOOK_AUTHOR_ID = createForeignKey(PK_T_AUTHOR, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.AUTHOR_ID);
|
||||
public static final org.jooq.ForeignKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord> FK_T_BOOK_CO_AUTHOR_ID = createForeignKey(PK_T_AUTHOR, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CO_AUTHOR_ID);
|
||||
public static final org.jooq.ForeignKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookSaleRecord, org.jooq.test.oracle.generatedclasses.test.tables.records.TBookToBookStoreRecord> FK_T_BOOK_TO_BOOK_STORE = createForeignKey(org.jooq.test.oracle.generatedclasses.test.Keys.PK_B2BS, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBookSale.T_BOOK_SALE, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBookSale.T_BOOK_SALE.BOOK_STORE_NAME, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBookSale.T_BOOK_SALE.BOOK_ID);
|
||||
|
||||
/**
|
||||
|
||||
@ -8,7 +8,7 @@ package org.jooq.test.oracle.generatedclasses.multi_schema;
|
||||
*/
|
||||
public class MultiSchema extends org.jooq.impl.SchemaImpl {
|
||||
|
||||
private static final long serialVersionUID = -540234768;
|
||||
private static final long serialVersionUID = -1472774415;
|
||||
|
||||
/**
|
||||
* The singleton instance of MULTI_SCHEMA
|
||||
@ -24,6 +24,9 @@ public class MultiSchema extends org.jooq.impl.SchemaImpl {
|
||||
|
||||
@Override
|
||||
public final java.util.List<org.jooq.Table<?>> getTables() {
|
||||
return java.util.Arrays.<org.jooq.Table<?>>asList(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBookSale.T_BOOK_SALE);
|
||||
return java.util.Arrays.<org.jooq.Table<?>>asList(
|
||||
org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR,
|
||||
org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK,
|
||||
org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBookSale.T_BOOK_SALE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,16 @@ package org.jooq.test.oracle.generatedclasses.multi_schema;
|
||||
*/
|
||||
public final class Tables {
|
||||
|
||||
/**
|
||||
* The table MULTI_SCHEMA.T_AUTHOR
|
||||
*/
|
||||
public static org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor T_AUTHOR = org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR;
|
||||
|
||||
/**
|
||||
* The table MULTI_SCHEMA.T_BOOK
|
||||
*/
|
||||
public static org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook T_BOOK = org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK;
|
||||
|
||||
/**
|
||||
* The table MULTI_SCHEMA.T_BOOK_SALE
|
||||
*/
|
||||
|
||||
@ -0,0 +1,95 @@
|
||||
/**
|
||||
* This class is generated by jOOQ
|
||||
*/
|
||||
package org.jooq.test.oracle.generatedclasses.multi_schema.tables;
|
||||
|
||||
/**
|
||||
* This class is generated by jOOQ.
|
||||
*/
|
||||
public class TAuthor extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord> {
|
||||
|
||||
private static final long serialVersionUID = 1944987199;
|
||||
|
||||
/**
|
||||
* The singleton instance of T_AUTHOR
|
||||
*/
|
||||
public static final org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor T_AUTHOR = new org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor();
|
||||
|
||||
/**
|
||||
* The class holding records for this type
|
||||
*/
|
||||
private static final java.lang.Class<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord> __RECORD_TYPE = org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord.class;
|
||||
|
||||
/**
|
||||
* The class holding records for this type
|
||||
*/
|
||||
@Override
|
||||
public java.lang.Class<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord> getRecordType() {
|
||||
return __RECORD_TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* PRIMARY KEY
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord, java.lang.Integer> ID = createField("ID", org.jooq.impl.SQLDataType.INTEGER, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord, java.lang.String> FIRST_NAME = createField("FIRST_NAME", org.jooq.impl.SQLDataType.VARCHAR, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord, java.lang.String> LAST_NAME = createField("LAST_NAME", org.jooq.impl.SQLDataType.VARCHAR, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord, java.sql.Date> DATE_OF_BIRTH = createField("DATE_OF_BIRTH", org.jooq.impl.SQLDataType.DATE, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord, java.lang.Integer> YEAR_OF_BIRTH = createField("YEAR_OF_BIRTH", org.jooq.impl.SQLDataType.INTEGER, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* The SQL type of this item (U_ADDRESS_TYPE) could not be mapped.<br/>
|
||||
* Deserialising this field might not work!
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord, java.lang.Object> ADDRESS = createField("ADDRESS", org.jooq.util.oracle.OracleDataType.getDefaultDataType("U_ADDRESS_TYPE"), this);
|
||||
|
||||
/**
|
||||
* No further instances allowed
|
||||
*/
|
||||
private TAuthor() {
|
||||
super("T_AUTHOR", org.jooq.test.oracle.generatedclasses.multi_schema.MultiSchema.MULTI_SCHEMA);
|
||||
}
|
||||
|
||||
/**
|
||||
* No further instances allowed
|
||||
*/
|
||||
private TAuthor(java.lang.String alias) {
|
||||
super(alias, org.jooq.test.oracle.generatedclasses.multi_schema.MultiSchema.MULTI_SCHEMA, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord> getMainKey() {
|
||||
return org.jooq.test.oracle.generatedclasses.multi_schema.Keys.PK_T_AUTHOR;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public java.util.List<org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord>> getKeys() {
|
||||
return java.util.Arrays.<org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord>>asList(org.jooq.test.oracle.generatedclasses.multi_schema.Keys.PK_T_AUTHOR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor as(java.lang.String alias) {
|
||||
return new org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor(alias);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,128 @@
|
||||
/**
|
||||
* This class is generated by jOOQ
|
||||
*/
|
||||
package org.jooq.test.oracle.generatedclasses.multi_schema.tables;
|
||||
|
||||
/**
|
||||
* This class is generated by jOOQ.
|
||||
*/
|
||||
public class TBook extends org.jooq.impl.UpdatableTableImpl<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord> {
|
||||
|
||||
private static final long serialVersionUID = 1346695844;
|
||||
|
||||
/**
|
||||
* The singleton instance of T_BOOK
|
||||
*/
|
||||
public static final org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook T_BOOK = new org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook();
|
||||
|
||||
/**
|
||||
* The class holding records for this type
|
||||
*/
|
||||
private static final java.lang.Class<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord> __RECORD_TYPE = org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord.class;
|
||||
|
||||
/**
|
||||
* The class holding records for this type
|
||||
*/
|
||||
@Override
|
||||
public java.lang.Class<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord> getRecordType() {
|
||||
return __RECORD_TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* PRIMARY KEY
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, java.lang.Integer> ID = createField("ID", org.jooq.impl.SQLDataType.INTEGER, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.AUTHOR_ID]
|
||||
* REFERENCES T_AUTHOR [MULTI_SCHEMA.T_AUTHOR.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, java.lang.Integer> AUTHOR_ID = createField("AUTHOR_ID", org.jooq.impl.SQLDataType.INTEGER, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.CO_AUTHOR_ID]
|
||||
* REFERENCES T_AUTHOR [MULTI_SCHEMA.T_AUTHOR.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, java.lang.Integer> CO_AUTHOR_ID = createField("CO_AUTHOR_ID", org.jooq.impl.SQLDataType.INTEGER, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, java.lang.Integer> DETAILS_ID = createField("DETAILS_ID", org.jooq.impl.SQLDataType.INTEGER, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, java.lang.String> TITLE = createField("TITLE", org.jooq.impl.SQLDataType.VARCHAR, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, java.lang.Integer> PUBLISHED_IN = createField("PUBLISHED_IN", org.jooq.impl.SQLDataType.INTEGER, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.LANGUAGE_ID]
|
||||
* REFERENCES T_LANGUAGE [TEST.T_LANGUAGE.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, org.jooq.test.oracle.generatedclasses.test.enums.TLanguage> LANGUAGE_ID = createField("LANGUAGE_ID", org.jooq.impl.SQLDataType.INTEGER.asMasterDataType(org.jooq.test.oracle.generatedclasses.test.enums.TLanguage.class), this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, java.lang.String> CONTENT_TEXT = createField("CONTENT_TEXT", org.jooq.impl.SQLDataType.CLOB, this);
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public final org.jooq.TableField<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, byte[]> CONTENT_PDF = createField("CONTENT_PDF", org.jooq.impl.SQLDataType.BLOB, this);
|
||||
|
||||
/**
|
||||
* No further instances allowed
|
||||
*/
|
||||
private TBook() {
|
||||
super("T_BOOK", org.jooq.test.oracle.generatedclasses.multi_schema.MultiSchema.MULTI_SCHEMA);
|
||||
}
|
||||
|
||||
/**
|
||||
* No further instances allowed
|
||||
*/
|
||||
private TBook(java.lang.String alias) {
|
||||
super(alias, org.jooq.test.oracle.generatedclasses.multi_schema.MultiSchema.MULTI_SCHEMA, org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord> getMainKey() {
|
||||
return org.jooq.test.oracle.generatedclasses.multi_schema.Keys.PK_T_BOOK;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public java.util.List<org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord>> getKeys() {
|
||||
return java.util.Arrays.<org.jooq.UniqueKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord>>asList(org.jooq.test.oracle.generatedclasses.multi_schema.Keys.PK_T_BOOK);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public java.util.List<org.jooq.ForeignKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, ?>> getReferences() {
|
||||
return java.util.Arrays.<org.jooq.ForeignKey<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord, ?>>asList(org.jooq.test.oracle.generatedclasses.multi_schema.Keys.FK_T_BOOK_AUTHOR_ID, org.jooq.test.oracle.generatedclasses.multi_schema.Keys.FK_T_BOOK_CO_AUTHOR_ID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook as(java.lang.String alias) {
|
||||
return new org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook(alias);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,137 @@
|
||||
/**
|
||||
* This class is generated by jOOQ
|
||||
*/
|
||||
package org.jooq.test.oracle.generatedclasses.multi_schema.tables.records;
|
||||
|
||||
/**
|
||||
* This class is generated by jOOQ.
|
||||
*/
|
||||
public class TAuthorRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord> {
|
||||
|
||||
private static final long serialVersionUID = -1384020730;
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* PRIMARY KEY
|
||||
*/
|
||||
public void setId(java.lang.Integer value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ID, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* PRIMARY KEY
|
||||
*/
|
||||
public java.lang.Integer getId() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* PRIMARY KEY
|
||||
*/
|
||||
public java.util.List<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord> fetchTBookListByAuthorId() {
|
||||
return create()
|
||||
.selectFrom(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK)
|
||||
.where(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.AUTHOR_ID.equal(getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ID)))
|
||||
.fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* PRIMARY KEY
|
||||
*/
|
||||
public java.util.List<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord> fetchTBookListByCoAuthorId() {
|
||||
return create()
|
||||
.selectFrom(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK)
|
||||
.where(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CO_AUTHOR_ID.equal(getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ID)))
|
||||
.fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setFirstName(java.lang.String value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.FIRST_NAME, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public java.lang.String getFirstName() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.FIRST_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setLastName(java.lang.String value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.LAST_NAME, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public java.lang.String getLastName() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.LAST_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setDateOfBirth(java.sql.Date value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.DATE_OF_BIRTH, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public java.sql.Date getDateOfBirth() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.DATE_OF_BIRTH);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setYearOfBirth(java.lang.Integer value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.YEAR_OF_BIRTH, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public java.lang.Integer getYearOfBirth() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.YEAR_OF_BIRTH);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* The SQL type of this item (U_ADDRESS_TYPE) could not be mapped.<br/>
|
||||
* Deserialising this field might not work!
|
||||
*/
|
||||
public void setAddress(java.lang.Object value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ADDRESS, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* The SQL type of this item (U_ADDRESS_TYPE) could not be mapped.<br/>
|
||||
* Deserialising this field might not work!
|
||||
*/
|
||||
public java.lang.Object getAddress() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ADDRESS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a detached TAuthorRecord
|
||||
*/
|
||||
public TAuthorRecord() {
|
||||
super(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,209 @@
|
||||
/**
|
||||
* This class is generated by jOOQ
|
||||
*/
|
||||
package org.jooq.test.oracle.generatedclasses.multi_schema.tables.records;
|
||||
|
||||
/**
|
||||
* This class is generated by jOOQ.
|
||||
*/
|
||||
public class TBookRecord extends org.jooq.impl.UpdatableRecordImpl<org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TBookRecord> {
|
||||
|
||||
private static final long serialVersionUID = -1667731665;
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* PRIMARY KEY
|
||||
*/
|
||||
public void setId(java.lang.Integer value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.ID, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*
|
||||
* PRIMARY KEY
|
||||
*/
|
||||
public java.lang.Integer getId() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.AUTHOR_ID]
|
||||
* REFERENCES T_AUTHOR [MULTI_SCHEMA.T_AUTHOR.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public void setAuthorId(java.lang.Integer value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.AUTHOR_ID, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.AUTHOR_ID]
|
||||
* REFERENCES T_AUTHOR [MULTI_SCHEMA.T_AUTHOR.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public java.lang.Integer getAuthorId() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.AUTHOR_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.AUTHOR_ID]
|
||||
* REFERENCES T_AUTHOR [MULTI_SCHEMA.T_AUTHOR.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord fetchTAuthorByAuthorId() {
|
||||
return create()
|
||||
.selectFrom(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR)
|
||||
.where(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ID.equal(getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.AUTHOR_ID)))
|
||||
.fetchOne();
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.CO_AUTHOR_ID]
|
||||
* REFERENCES T_AUTHOR [MULTI_SCHEMA.T_AUTHOR.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public void setCoAuthorId(java.lang.Integer value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CO_AUTHOR_ID, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.CO_AUTHOR_ID]
|
||||
* REFERENCES T_AUTHOR [MULTI_SCHEMA.T_AUTHOR.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public java.lang.Integer getCoAuthorId() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CO_AUTHOR_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.CO_AUTHOR_ID]
|
||||
* REFERENCES T_AUTHOR [MULTI_SCHEMA.T_AUTHOR.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public org.jooq.test.oracle.generatedclasses.multi_schema.tables.records.TAuthorRecord fetchTAuthorByCoAuthorId() {
|
||||
return create()
|
||||
.selectFrom(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR)
|
||||
.where(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TAuthor.T_AUTHOR.ID.equal(getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CO_AUTHOR_ID)))
|
||||
.fetchOne();
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setDetailsId(java.lang.Integer value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.DETAILS_ID, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public java.lang.Integer getDetailsId() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.DETAILS_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setTitle(java.lang.String value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.TITLE, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public java.lang.String getTitle() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.TITLE);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setPublishedIn(java.lang.Integer value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.PUBLISHED_IN, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public java.lang.Integer getPublishedIn() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.PUBLISHED_IN);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.LANGUAGE_ID]
|
||||
* REFERENCES T_LANGUAGE [TEST.T_LANGUAGE.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public void setLanguageId(org.jooq.test.oracle.generatedclasses.test.enums.TLanguage value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.LANGUAGE_ID, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
* <p>
|
||||
* <code><pre>
|
||||
* FOREIGN KEY [MULTI_SCHEMA.T_BOOK.LANGUAGE_ID]
|
||||
* REFERENCES T_LANGUAGE [TEST.T_LANGUAGE.ID]
|
||||
* </pre></code>
|
||||
*/
|
||||
public org.jooq.test.oracle.generatedclasses.test.enums.TLanguage getLanguageId() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.LANGUAGE_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setContentText(java.lang.String value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CONTENT_TEXT, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public java.lang.String getContentText() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CONTENT_TEXT);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public void setContentPdf(byte[] value) {
|
||||
setValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CONTENT_PDF, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* An uncommented item
|
||||
*/
|
||||
public byte[] getContentPdf() {
|
||||
return getValue(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK.CONTENT_PDF);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a detached TBookRecord
|
||||
*/
|
||||
public TBookRecord() {
|
||||
super(org.jooq.test.oracle.generatedclasses.multi_schema.tables.TBook.T_BOOK);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user