use of org.hibernate.mapping.Index in project hibernate-orm by hibernate.
the class AbstractJPAIndexTest method testJoinTableIndex.
@Test
public void testJoinTableIndex() {
PersistentClass entity = metadata().getEntityBinding(Importer.class.getName());
Property property = entity.getProperty("cars");
Bag set = (Bag) property.getValue();
Table collectionTable = set.getCollectionTable();
Iterator<Index> itr = collectionTable.getIndexIterator();
assertTrue(itr.hasNext());
Index index = itr.next();
assertFalse(itr.hasNext());
assertTrue("index name is not generated", StringHelper.isNotEmpty(index.getName()));
assertEquals(1, index.getColumnSpan());
Iterator<Column> columnIterator = index.getColumnIterator();
Column column = columnIterator.next();
assertEquals("importers_id", column.getName());
assertSame(collectionTable, index.getTable());
}
use of org.hibernate.mapping.Index in project hibernate-orm by hibernate.
the class AbstractJPAIndexTest method testTableIndex.
@Test
public void testTableIndex() {
PersistentClass entity = metadata().getEntityBinding(Car.class.getName());
Iterator itr = entity.getTable().getUniqueKeyIterator();
assertTrue(itr.hasNext());
UniqueKey uk = (UniqueKey) itr.next();
assertFalse(itr.hasNext());
assertTrue(StringHelper.isNotEmpty(uk.getName()));
assertEquals(2, uk.getColumnSpan());
Column column = (Column) uk.getColumns().get(0);
assertEquals("brand", column.getName());
column = (Column) uk.getColumns().get(1);
assertEquals("producer", column.getName());
assertSame(entity.getTable(), uk.getTable());
itr = entity.getTable().getIndexIterator();
assertTrue(itr.hasNext());
Index index = (Index) itr.next();
assertFalse(itr.hasNext());
assertEquals("Car_idx", index.getName());
assertEquals(1, index.getColumnSpan());
column = index.getColumnIterator().next();
assertEquals("since", column.getName());
assertSame(entity.getTable(), index.getTable());
}
use of org.hibernate.mapping.Index in project hibernate-orm by hibernate.
the class ABCTest method testHigherLevelIndexDefinition.
@Test
public void testHigherLevelIndexDefinition() throws Throwable {
Table table = metadata().getDatabase().getDefaultNamespace().locateTable(Identifier.toIdentifier("TA"));
Iterator<Index> indexItr = table.getIndexIterator();
boolean found = false;
while (indexItr.hasNext()) {
final Index index = indexItr.next();
if ("indx_a_name".equals(index.getName())) {
found = true;
break;
}
}
assertTrue("Unable to locate indx_a_name index", found);
}
use of org.hibernate.mapping.Index in project uPortal by Jasig.
the class HibernateDbLoader method createScript.
/** 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));
}
}
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;
}
use of org.hibernate.mapping.Index in project uPortal by Jasig.
the class TableXmlHandler method startElement.
/* (non-Javadoc)
* @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
*/
@Override
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException {
if ("table".equals(name)) {
this.currentColumns = new LinkedHashMap<String, Column>();
this.currentColumnTypes = new TreeMap<String, Integer>(String.CASE_INSENSITIVE_ORDER);
} else if ("index".equals(name)) {
this.currentIndex = new Index();
this.currentIndex.setTable(this.currentTable);
} else if ("unique".equals(name)) {
this.currentUnique = new UniqueKey();
this.currentUnique.setTable(this.currentTable);
}
this.chars = new StringBuilder();
}
Aggregations