List of usage examples for org.hibernate.mapping Table getUniqueKeyIterator
public Iterator<UniqueKey> getUniqueKeyIterator()
From source file:com.github.gekoh.yagen.ddl.CreateDDL.java
License:Apache License
private boolean hasIndex(Table table, String tableNameLC, org.hibernate.mapping.Column column) { String columnName = column.getName().toLowerCase(); if (tblColNameHasSingleColIndex.contains(tableNameLC + "." + columnName)) { return true; }//from w ww . j av a2s .c o m TableConfig tableConfig = tblNameToConfig.get(tableNameLC); List<String> pkCols = tableConfig != null ? tableConfig.getPkColnames() : null; if (pkCols != null && pkCols.size() == 1 && pkCols.contains(columnName)) { return true; } PrimaryKey pk = table.getPrimaryKey(); if (pk != null && pk.getColumnSpan() == 1 && pk.getColumns().get(0).equals(column)) { return true; } Iterator<UniqueKey> uniqueKeyIterator = table.getUniqueKeyIterator(); while (uniqueKeyIterator.hasNext()) { UniqueKey uk = uniqueKeyIterator.next(); if (uk.getColumnSpan() == 1 && uk.containsColumn(column)) { return true; } } return column.isUnique(); }
From source file:com.vecna.dbDiff.hibernate.HibernateMappingsConverter.java
License:Apache License
/** * Convert a Hibernate table model to the DbDiff table model. * @param mappedTable hibernate table./* w w w .j a va 2s . c o m*/ * @return DbDiff table. */ private RelationalTable convertTable(org.hibernate.mapping.Table mappedTable) { RelationalTable table = new RelationalTable(m_catalogSchema, getTableName(mappedTable)); List<Column> columns = new ArrayList<>(); List<RelationalIndex> indices = new ArrayList<>(); @SuppressWarnings("unchecked") Iterator<org.hibernate.mapping.Column> mappedColumns = mappedTable.getColumnIterator(); int idx = 1; while (mappedColumns.hasNext()) { org.hibernate.mapping.Column mappedColumn = mappedColumns.next(); Column column = convertColumn(mappedColumn, mappedTable, idx++); columns.add(column); if (mappedColumn.isUnique()) { indices.add(getUniqueIndex(table, column)); } } table.setColumns(columns); Set<ForeignKey> fkeys = new HashSet<>(); @SuppressWarnings("unchecked") Iterator<org.hibernate.mapping.ForeignKey> mappedKeys = mappedTable.getForeignKeyIterator(); while (mappedKeys.hasNext()) { convertForeignKey(mappedKeys.next(), fkeys); } table.setFks(fkeys); @SuppressWarnings("unchecked") Iterator<Index> mappedIndices = mappedTable.getIndexIterator(); while (mappedIndices.hasNext()) { indices.add(convertIndex(mappedIndices.next(), table)); } @SuppressWarnings("unchecked") Iterator<UniqueKey> mappedUniqueKeys = mappedTable.getUniqueKeyIterator(); while (mappedUniqueKeys.hasNext()) { indices.add(convertIndex(mappedUniqueKeys.next(), table)); } if (mappedTable.getPrimaryKey() != null) { indices.add(convertIndex(mappedTable.getPrimaryKey(), table)); List<String> pkColumnNames = new ArrayList<>(); @SuppressWarnings("unchecked") Iterator<org.hibernate.mapping.Column> pkColumns = mappedTable.getPrimaryKey().getColumnIterator(); while (pkColumns.hasNext()) { pkColumnNames.add(getColumnName(pkColumns.next())); } table.setPkColumns(pkColumnNames); } table.setIndices(indices); return table; }
From source file:org.apereo.portal.tools.dbloader.HibernateDbLoader.java
License:Apache License
/** Generate create scripts and add them to the script list */ @SuppressWarnings("unchecked") protected List<String> createScript(Collection<Table> tables, Dialect dialect, Mapping mapping, String defaultCatalog, String defaultSchema) { final List<String> script = new ArrayList<String>(tables.size() * 2); for (final Table table : tables) { if (table.isPhysicalTable()) { script.add(table.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema)); }// ww w . j av a 2 s .c om } for (final Table table : tables) { if (table.isPhysicalTable()) { if (!dialect.supportsUniqueConstraintInCreateAlterTable()) { for (final Iterator<UniqueKey> subIter = table.getUniqueKeyIterator(); subIter.hasNext();) { final UniqueKey uk = subIter.next(); final String constraintString = uk.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema); if (constraintString != null) { script.add(constraintString); } } } for (final Iterator<Index> subIter = table.getIndexIterator(); subIter.hasNext();) { final Index index = subIter.next(); script.add(index.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema)); } if (dialect.hasAlterTable()) { for (final Iterator<ForeignKey> subIter = table.getForeignKeyIterator(); subIter.hasNext();) { final ForeignKey fk = subIter.next(); if (fk.isPhysicalConstraint()) { script.add(fk.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema)); } } } } } return script; }
From source file:org.beangle.orm.hibernate.tool.DdlGenerator.java
License:Open Source License
@SuppressWarnings("unchecked") private void generateTableSql(Table table) { if (!table.isPhysicalTable()) return;//from www. ja v a 2 s . c o m Iterator<String> commentIter = table.sqlCommentStrings(dialect, defaultCatalog, defaultSchema); while (commentIter.hasNext()) { comments.add(commentIter.next()); } if (processed.contains(table)) return; processed.add(table); tables.add(table.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema)); Iterator<UniqueKey> subIter = table.getUniqueKeyIterator(); while (subIter.hasNext()) { UniqueKey uk = subIter.next(); String constraintString = uk.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema); if (constraintString != null) constraints.add(constraintString); } Iterator<Index> idxIter = table.getIndexIterator(); while (idxIter.hasNext()) { final Index index = idxIter.next(); indexes.add(index.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema)); } if (dialect.hasAlterTable()) { Iterator<ForeignKey> fkIter = table.getForeignKeyIterator(); while (fkIter.hasNext()) { ForeignKey fk = fkIter.next(); if (fk.isPhysicalConstraint()) { constraints.add(fk.sqlCreateString(dialect, mapping, defaultCatalog, defaultSchema)); } } } }
From source file:org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinderTests.java
License:Apache License
public void testUniqueConstraintGeneration() { DefaultGrailsDomainConfiguration config = getDomainConfig(UNIQUE_PROPERTIES); assertEquals("Tables created", 1, getTableCount(config)); List expectedKeyColumns1 = Arrays .asList(new Column[] { new Column("camel_cased"), new Column("group"), new Column("login") }); List expectedKeyColumns2 = Arrays.asList(new Column[] { new Column("camel_cased"), new Column("group") }); Table mapping = (Table) config.getTableMappings().next(); int cnt = 0;//from www .j a v a2 s. c o m boolean found1 = false, found2 = false; for (Iterator i = mapping.getUniqueKeyIterator(); i.hasNext();) { UniqueKey key = (UniqueKey) i.next(); List keyColumns = key.getColumns(); if (keyColumns.equals(expectedKeyColumns1)) { found1 = true; } if (keyColumns.equals(expectedKeyColumns2)) { found2 = true; } cnt++; } assertEquals(2, cnt); assertEquals(true, mapping.getColumn(new Column("employeeID")).isUnique()); assertEquals(true, found1); assertEquals(true, found2); }
From source file:org.web4thejob.orm.PropertyMetadataImpl.java
License:Open Source License
@Override public boolean isUniqueKeyWith(String propertyName) { if (getName().equals(propertyName)) { return false; }/* w w w.j a v a 2 s . c om*/ PersistentClass pc = entityMetadata.getPersistentClass(); while (pc != null) { Table table = pc.getTable(); for (Iterator<?> iterUK = table.getUniqueKeyIterator(); iterUK.hasNext();) { UniqueKey uniqueKey = (UniqueKey) iterUK.next(); if (!(uniqueKey.getColumnSpan() > 1)) { continue; } int totcols = 0; boolean keyMembers = true; for (PropertyMetadataImpl propertyMetadata : Arrays.asList(this, (PropertyMetadataImpl) entityMetadata.getPropertyMetadata(propertyName))) { if (!propertyMetadata.hasColumns()) { return false; } for (final Iterator<?> iterCol = propertyMetadata.property.getColumnIterator(); iterCol .hasNext();) { Column column = (Column) iterCol.next(); keyMembers &= column != null && uniqueKey.containsColumn(column); } totcols += propertyMetadata.property.getColumnSpan(); } if (keyMembers && totcols == uniqueKey.getColumnSpan()) { return true; } } pc = pc.getSuperclass(); } return false; }
From source file:org.web4thejob.orm.PropertyMetadataImpl.java
License:Open Source License
@Override public boolean isMemberOfUniqueKey() { if (!hasColumns()) { return false; }//from w ww.j av a 2s. c o m PersistentClass pc = entityMetadata.getPersistentClass(); while (pc != null) { Table table = pc.getTable(); for (Iterator<?> iterUK = table.getUniqueKeyIterator(); iterUK.hasNext();) { UniqueKey uniqueKey = (UniqueKey) iterUK.next(); boolean member = true; for (final Iterator<?> iterCol = property.getColumnIterator(); iterCol.hasNext();) { Column column = (Column) iterCol.next(); member &= column != null && uniqueKey.containsColumn(column); } if (member) { return true; } } pc = pc.getSuperclass(); } return false; }