@Override public final List<UniqueKey<R>> getKeys() { return alias.wrapped().getKeys(); }
@Override public final void onConflictOnConstraint(Constraint constraint) { this.onConstraint = constraint; if (onConstraintUniqueKey == null) { for (UniqueKey<R> key : table.getKeys()) { if (constraint.getName().equals(key.getName())) { onConstraintUniqueKey = key; break; } } } }
private List<Constraint> primaryKeys(Table<?> table) { List<Constraint> result = new ArrayList<Constraint>(); if (flags.contains(PRIMARY_KEY)) for (UniqueKey<?> key : table.getKeys()) if (key.isPrimary()) result.add(constraint(key.getName()).primaryKey(key.getFieldsArray())); return result; }
private List<Constraint> uniqueKeys(Table<?> table) { List<Constraint> result = new ArrayList<Constraint>(); if (flags.contains(UNIQUE)) for (UniqueKey<?> key : table.getKeys()) if (!key.isPrimary()) result.add(constraint(key.getName()).unique(key.getFieldsArray())); return result; }
private final List<List<? extends Field<?>>> conflictingKeys(Configuration configuration) { // [#7365] PostgreSQL ON CONFLICT (conflict columns) clause if (onConflict != null && onConflict.size() > 0) return Collections.<List<? extends Field<?>>>singletonList(onConflict); // [#7409] PostgreSQL ON CONFLICT ON CONSTRAINT clause else if (onConstraintUniqueKey != null) return Collections.<List<? extends Field<?>>>singletonList(onConstraintUniqueKey.getFields()); // [#6462] MySQL ON DUPLICATE KEY UPDATE clause // Flag for backwards compatibility considers only PRIMARY KEY else if (TRUE.equals(Tools.settings(configuration).isEmulateOnDuplicateKeyUpdateOnPrimaryKeyOnly())) return Collections.<List<? extends Field<?>>>singletonList(table.getPrimaryKey().getFields()); // [#6462] MySQL ON DUPLICATE KEY UPDATE clause // All conflicting keys are considered List<UniqueKey<R>> keys = table.getKeys(); List<List<? extends Field<?>>> result = new ArrayList<List<? extends Field<?>>>(keys.size()); for (UniqueKey<R> key : keys) result.add(key.getFields()); return result; }
private final Merge<R> toMerge(Configuration configuration) { if ((onConflict != null && onConflict.size() > 0) || onConstraint != null || !table.getKeys().isEmpty()) {
for (UniqueKey<?> key : t.getKeys()) exportKey0(result, t, key, key.isPrimary() ? PRIMARY_KEY : UNIQUE);