/** * Get the columns that are not included in the primary key for this table. * @return the list of columns that are not part of the primary key; never null but possibly empty */ default List<Column> nonPrimaryKeyColumns() { return filterColumns(col->!isPrimaryKeyColumn(col.name())); }
/** * Get the columns that make up the primary key for this table. * @return the list of columns that make up the primary key; never null but possibly empty */ default List<Column> primaryKeyColumns() { return filterColumns(col->isPrimaryKeyColumn(col.name())); }
@Test public void shouldFilterColumnsUsingPredicate() { assertThat(table.filterColumns(c->c.isAutoIncremented())).containsExactly(c4); assertThat(table.filterColumns(c->c.isGenerated())).containsExactly(c1); assertThat(table.filterColumns(c->c.isOptional())).containsExactly(c3,c4); }
Table person = tables.forTable(DATABASE.getDatabaseName(), null, "person"); assertThat(person).isNotNull(); assertThat(person.filterColumns(col->col.isAutoIncremented())).isEmpty(); assertThat(person.primaryKeyColumnNames()).containsOnly("name"); assertThat(person.retrieveColumnNames()).containsExactly("name","birthdate","age","salary","bitStr"); Table purchased = tables.forTable(DATABASE.getDatabaseName(), null, "purchased"); assertThat(purchased).isNotNull(); assertThat(person.filterColumns(col->col.isAutoIncremented())).isEmpty(); assertThat(purchased.primaryKeyColumnNames()).containsOnly("productId","purchaser"); assertThat(purchased.retrieveColumnNames()).containsExactly("purchaser","productId","purchaseDate");
/** * Get the columns that make up the primary key for this table. * @return the list of columns that make up the primary key; never null but possibly empty */ default List<Column> primaryKeyColumns() { return filterColumns(col->isPrimaryKeyColumn(col.name())); }
/** * Get the columns that are not included in the primary key for this table. * @return the list of columns that are not part of the primary key; never null but possibly empty */ default List<Column> nonPrimaryKeyColumns() { return filterColumns(col->!isPrimaryKeyColumn(col.name())); }
Table person = tables.forTable(DATABASE.getDatabaseName(), null, "person"); assertThat(person).isNotNull(); assertThat(person.filterColumns(col->col.isAutoIncremented())).isEmpty(); assertThat(person.primaryKeyColumnNames()).containsOnly("name"); assertThat(person.retrieveColumnNames()).containsExactly("name","birthdate","age","salary","bitStr"); Table purchased = tables.forTable(DATABASE.getDatabaseName(), null, "purchased"); assertThat(purchased).isNotNull(); assertThat(person.filterColumns(col->col.isAutoIncremented())).isEmpty(); assertThat(purchased.primaryKeyColumnNames()).containsOnly("productId","purchaser"); assertThat(purchased.retrieveColumnNames()).containsExactly("purchaser","productId","purchaseDate");