Package org.hibernate.mapping

Examples of org.hibernate.mapping.PrimaryKey


    Iterator<Table> tableMappings = configuration.getTableMappings();
    while ( tableMappings.hasNext() ) {
      Table table = tableMappings.next();
      if ( table.isPhysicalTable() ) {
        Label label = label( table.getName() );
        PrimaryKey primaryKey = table.getPrimaryKey();
        createConstraint( neo4jDb, table, label, primaryKey );
        @SuppressWarnings("unchecked")
        Iterator<Column> columnIterator = table.getColumnIterator();
        while ( columnIterator.hasNext() ) {
          Column column = columnIterator.next();
View Full Code Here


   * @throws SQLException
   */
  private void processPrimaryKey(DatabaseCollector dbs, Table table) {
       
    List columns = new ArrayList();
    PrimaryKey key = null;
    Iterator primaryKeyIterator = null;
    try {
      Map primaryKeyRs = null
      primaryKeyIterator = getMetaDataDialect().getPrimaryKeys(getCatalogForDBLookup(table.getCatalog()), getSchemaForDBLookup(table.getSchema()), table.getName() );   
   
      while (primaryKeyIterator.hasNext() ) {
        primaryKeyRs = (Map) primaryKeyIterator.next();
       
        /*String ownCatalog = primaryKeyRs.getString("TABLE_CAT");
         String ownSchema = primaryKeyRs.getString("TABLE_SCHEM");
         String ownTable = primaryKeyRs.getString("TABLE_NAME");*/
       
        String columnName = (String) primaryKeyRs.get("COLUMN_NAME");
        short seq = ((Short)primaryKeyRs.get("KEY_SEQ")).shortValue();
        String name = (String) primaryKeyRs.get("PK_NAME");
       
        if(key==null) {
          key = new PrimaryKey();
          key.setName(name);
          key.setTable(table);
          if(table.getPrimaryKey()!=null) {
            throw new JDBCBinderException(table + " already has a primary key!"); //TODO: ignore ?
          }
          table.setPrimaryKey(key);
        }
        else {
          if(!(name==key.getName() ) && name!=null && !name.equals(key.getName() ) ) {
            throw new JDBCBinderException("Duplicate names found for primarykey. Existing name: " + key.getName() + " JDBC name: " + name + " on table " + table);
          }           
        }
       
        columns.add(new Object[] { new Short(seq), columnName});
      }
    } finally {
      if (primaryKeyIterator!=null) {
        try {
          getMetaDataDialect().close(primaryKeyIterator);
        } catch(JDBCException se) {
          log.warn("Exception when closing resultset for reading primary key information",se);
        }
      }
    }
       
        // sort the columns accoring to the key_seq.
        Collections.sort(columns,new Comparator() {
      public boolean equals(Object obj) {
        return super.equals(obj);
      }

      public int compare(Object o1, Object o2) {
        Short left = (Short) ( (Object[]) o1)[0];
        Short right = (Short) ( (Object[]) o2)[0];
        return left.compareTo(right);
      }
     
      public int hashCode() {
        return super.hashCode();
      }
        });
       
        List t = new ArrayList(columns.size());
        Iterator cols = columns.iterator();
        while (cols.hasNext() ) {
      Object[] element = (Object[]) cols.next();
      t.add(element[1]);
        }
        columns = t;
       
        if(key==null) {
          log.warn("The JDBC driver didn't report any primary key columns in " + table.getName() + ". Asking rev.eng. strategy" );
          List userPrimaryKey = revengStrategy.getPrimaryKeyColumnNames(TableIdentifier.create(table));
          if(userPrimaryKey!=null && !userPrimaryKey.isEmpty()) {
            key = new PrimaryKey();
            key.setName(new Alias(15, "PK").toAliasString( table.getName()));
            key.setTable(table);
            if(table.getPrimaryKey()!=null) {
              throw new JDBCBinderException(table + " already has a primary key!"); //TODO: ignore ?
            }
            table.setPrimaryKey(key);
            columns = new ArrayList(userPrimaryKey);
          } else {
            log.warn("Rev.eng. strategy did not report any primary key columns for " + table.getName());
          }         
        }

        Iterator suggestedPrimaryKeyStrategyName = getMetaDataDialect().getSuggestedPrimaryKeyStrategyName( getCatalogForDBLookup(table.getCatalog()), getSchemaForDBLookup(table.getSchema()), table.getName() );
        try {
        if(suggestedPrimaryKeyStrategyName.hasNext()) {
          Map m = (Map) suggestedPrimaryKeyStrategyName.next();
          String suggestion = (String) m.get( "HIBERNATE_STRATEGY" );
          if(suggestion!=null) {
            dbs.addSuggestedIdentifierStrategy( table.getCatalog(), table.getSchema(), table.getName(), suggestion );
          }
        }
        } finally {
          if(suggestedPrimaryKeyStrategyName!=null) {
          try {
            getMetaDataDialect().close(suggestedPrimaryKeyStrategyName);
          } catch(JDBCException se) {
            log.warn("Exception while closing iterator for suggested primary key strategy name",se);
          }
        }         
        }
               
        if(key!=null) {
          cols = columns.iterator();
          while (cols.hasNext() ) {
            String name = (String) cols.next();
            // should get column from table if it already exists!
            Column col = getColumn(table, name);
            key.addColumn(col);
          }
          log.debug("primary key for " + table + " -> "  + key);
        }
              
  }
View Full Code Here

  public boolean isManyToManyTable(Table table) {
    if(settings.getDetectManyToMany()) {
     
      // if the number of columns in the primary key is different
      // than the total number of columns then it can't be a middle table
      PrimaryKey pk = table.getPrimaryKey();
      if ( pk==null || pk.getColumns().size() != table.getColumnSpan() )
        return false;
     
      Iterator foreignKeyIterator = table.getForeignKeyIterator();
      List foreignKeys = new ArrayList();
     
View Full Code Here

        }
        else if ("primary-key".equals(name)) {
            final String columnName = this.chars.toString().trim();
           
            if (this.primaryKey == null) {
                this.primaryKey = new PrimaryKey();
            }
           
            final Column column = this.currentColumns.get(columnName);
            this.primaryKey.addColumn(column);
        }
View Full Code Here

    // TODO: we cannot call getSqlType(dialect,cfg) without a
    // MappingassertEquals("INTEGER", basicColumn.getSqlType() ); // at
    // least on hsqldb
    // assertEquals(22, basicColumn.getLength() ); // at least on oracle

    PrimaryKey key = table.getPrimaryKey();
    assertNotNull( "There should be a primary key!", key );
    assertEquals( key.getColumnSpan(), 1 );

    Column column = key.getColumn( 0 );
    assertTrue( column.isUnique() );

    assertSame( basicColumn, column );

  }
View Full Code Here

  public void testCompositeKeys() {

    Table table = getTable( identifier( "multikeyed" ) );

    PrimaryKey primaryKey = table.getPrimaryKey();

    assertEquals( 2, primaryKey.getColumnSpan() );
  }
View Full Code Here

      //FIXME
      SimpleValue sv = new SimpleValue(mappings, table);
      sv.setTypeName("string");
      col.setValue(sv);     
      table.addColumn(col);
      PrimaryKey pk = new PrimaryKey();
      pk.addColumn(col);
      table.setPrimaryKey(pk);
     
      for(int colcount=0;colcount<COLCOUNT;colcount++) {
        col = new Column("col"+tablecount+"_"+colcount);
        //FIXME
View Full Code Here

    StringBuffer r = new StringBuffer();
    Configuration conf = HibernateUtil.getConfiguration();
    Mappings map = conf.createMappings();
    if (o!=null && o.getClass().getName()!=null && map.getClass(o.getClass().getName())!=null) {
      Table tab = map.getClass(o.getClass().getName()).getTable();
      PrimaryKey pk = tab.getPrimaryKey();
      Iterator itr = pk.getColumnIterator();
      while (itr.hasNext()) {
        Column col = (Column) itr.next();
        String colname = col.getName();
        String value = "";
        try {
View Full Code Here

    // TODO: we cannot call getSqlType(dialect,cfg) without a
    // MappingassertEquals("INTEGER", basicColumn.getSqlType() ); // at
    // least on hsqldb
    // assertEquals(22, basicColumn.getLength() ); // at least on oracle

    PrimaryKey key = table.getPrimaryKey();
    assertNotNull( "There should be a primary key!", key );
    assertEquals( key.getColumnSpan(), 1 );

    Column column = key.getColumn( 0 );
    assertTrue( column.isUnique() );

    assertSame( basicColumn, column );

  }
View Full Code Here

  public void testCompositeKeys() {

    Table table = getTable( identifier( "multikeyed" ) );

    PrimaryKey primaryKey = table.getPrimaryKey();

    assertEquals( 2, primaryKey.getColumnSpan() );
  }
View Full Code Here

TOP

Related Classes of org.hibernate.mapping.PrimaryKey

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.