private /* non-final */ Field<?>[] pk() { UniqueKey<?> key = table.getPrimaryKey(); return key == null ? null : key.getFieldsArray(); }
private TableField<?, ?> findPrimaryKey(Table<?> table) { UniqueKey<?> pk = table.getPrimaryKey(); if (pk != null) { TableField<?, ?>[] pks = pk.getFieldsArray(); if (pks.length == 1) { return pks[0]; } } return null; }
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 List<Constraint> foreignKeys(Table<?> table) { List<Constraint> result = new ArrayList<Constraint>(); if (flags.contains(FOREIGN_KEY)) for (ForeignKey<?, ?> key : table.getReferences()) result.add(constraint(key.getName()).foreignKey(key.getFieldsArray()).references(key.getKey().getTable(), key.getKey().getFieldsArray())); return result; }
@Override public final Result<O> fetchParents(Collection<? extends R> records) { if (records == null || records.size() == 0) { return new ResultImpl<O>(new DefaultConfiguration(), key.getFields()); } else { return fetch(records, key.getTable(), key.getFieldsArray(), getFieldsArray()); } }
@Override public final Result<O> fetchParents(Collection<? extends R> records) { if (records == null || records.size() == 0) { return new ResultImpl<O>(new DefaultConfiguration(), key.getFields()); } else { return fetch(records, key.getTable(), key.getFieldsArray(), getFieldsArray()); } }
@Override public final Result<R> fetchChildren(Collection<? extends O> records) { if (records == null || records.size() == 0) { return new ResultImpl<R>(new DefaultConfiguration(), getFields()); } else { return fetch(records, getTable(), getFieldsArray(), key.getFieldsArray()); } }
@Override public final Result<R> fetchChildren(Collection<? extends O> records) { if (records == null || records.size() == 0) { return new ResultImpl<R>(new DefaultConfiguration(), getFields()); } else { return fetch(records, getTable(), getFieldsArray(), key.getFieldsArray()); } }
@Override public <R extends UpdatableRecord<R>> int executeDelete(R record) { DeleteQuery<R> delete = deleteQuery(record.getTable()); Tools.addConditions(delete, record, record.getTable().getPrimaryKey().getFieldsArray()); return delete.execute(); }
@Override public <R extends UpdatableRecord<R>> int executeDelete(R record) { DeleteQuery<R> delete = deleteQuery(record.getTable()); Utils.addConditions(delete, record, record.getTable().getPrimaryKey().getFieldsArray()); return delete.execute(); }
@SuppressWarnings("unchecked") protected /* non-final */ T compositeKeyRecord(Object... values) { UniqueKey<R> key = table.getPrimaryKey(); if (key == null) return null; TableField<R, Object>[] fields = (TableField<R, Object>[]) key.getFieldsArray(); Record result = DSL.using(configuration) .newRecord(fields); for (int i = 0; i < values.length; i++) result.set(fields[i], fields[i].getDataType().convert(values[i])); return (T) result; }
@Override public Constraint constraint() { return DSL.constraint(getName()) .foreignKey(getFieldsArray()) .references(key.getTable(), key.getFieldsArray()); } }
@SuppressWarnings({ "unchecked", "rawtypes" }) private final JoinTable onKey(ForeignKey<?, ?> key, Table<?> fk, Table<?> pk) { JoinTable result = this; TableField<?, ?>[] references = key.getFieldsArray(); TableField<?, ?>[] referenced = key.getKey().getFieldsArray(); for (int i = 0; i < references.length; i++) { Field f1 = fk.field(references[i]); Field f2 = pk.field(referenced[i]); // [#2870] TODO: If lhs or rhs are aliased tables, extract the appropriate fields from them result.and(f1.equal(f2)); } return result; }
@SuppressWarnings("unchecked") protected /* non-final */ T compositeKeyRecord(Object... values) { UniqueKey<R> key = table.getPrimaryKey(); if (key == null) return null; TableField<R, Object>[] fields = (TableField<R, Object>[]) key.getFieldsArray(); Record result = DSL.using(queryExecutor.configuration()) .newRecord(fields); for (int i = 0; i < values.length; i++) result.set(fields[i], fields[i].getDataType().convert(values[i])); return (T) result; }
@Override public <R extends UpdatableRecord<R>> int executeUpdate(R record) { UpdateQuery<R> update = updateQuery(record.getTable()); Utils.addConditions(update, record, record.getTable().getPrimaryKey().getFieldsArray()); update.setRecord(record); return update.execute(); }
@Override public <R extends UpdatableRecord<R>> int executeUpdate(R record) { UpdateQuery<R> update = updateQuery(record.getTable()); Tools.addConditions(update, record, record.getTable().getPrimaryKey().getFieldsArray()); update.setRecord(record); return update.execute(); }
@SuppressWarnings("unchecked") protected /* non-final */ T compositeKeyRecord(Object... values) { UniqueKey<R> key = table.getPrimaryKey(); if (key == null) return null; TableField<R, Object>[] fields = (TableField<R, Object>[]) key.getFieldsArray(); Record result = DSL.using(queryExecutor.configuration()) .newRecord(fields); for (int i = 0; i < values.length; i++) result.set(fields[i], fields[i].getDataType().convert(values[i])); return (T) result; }
@Override public INSERT_RETURNING insertReturningPrimary(P object) { return queryExecutor().insertReturning(dslContext -> dslContext .insertInto(getTable()) .set(newRecord(dslContext, object)) .returning(getTable().getPrimaryKey().getFieldsArray()), keyConverter); } }
@Override public INSERT_RETURNING insertReturningPrimary(P object) { return queryExecutor().insertReturning(dslContext -> dslContext .insertInto(getTable()) .set(newRecord(dslContext, object)) .returning(getTable().getPrimaryKey().getFieldsArray()), keyConverter); } }