List of usage examples for org.hibernate.mapping PrimaryKey addColumn
@Override
public void addColumn(Column column)
From source file:com.manydesigns.portofino.persistence.hibernate.HibernateConfig.java
License:Open Source License
protected void createPKComposite(Mappings mappings, com.manydesigns.portofino.model.database.Table mdTable, String pkName, RootClass clazz, Table tab, List<com.manydesigns.portofino.model.database.Column> columnPKList) { PrimaryKey primaryKey = new PrimaryKey(); primaryKey.setName(pkName);//from w w w . j a v a 2 s . c om primaryKey.setTable(tab); clazz.setEmbeddedIdentifier(true); Component component = new Component(mappings, clazz); component.setDynamic(mdTable.getActualJavaClass() == null); String name; name = mdTable.getQualifiedName(); component.setRoleName(name + ".id"); component.setEmbedded(true); //component.setNodeName("id"); component.setKey(true); component.setNullValue("undefined"); if (!component.isDynamic()) { component.setComponentClassName(mdTable.getJavaClass()); //TODO verificare se non si intende actualJavaClass } boolean hasErrors = false; for (com.manydesigns.portofino.model.database.Column column : columnPKList) { if (column == null) { throw new InternalError("Null column"); } Column col = createColumn(mappings, tab, column); hasErrors = col == null || hasErrors; if (col != null) { primaryKey.addColumn(col); Property prop = createProperty(column, col.getValue()); prop.setCascade("none"); //prop.setPropertyAccessorName("property"); interferisce con il generator pi sotto prop.setPersistentClass(clazz); component.addProperty(prop); //Generator not supported for embedded map identifier //See https://forum.hibernate.org/viewtopic.php?t=945273 //See Component.buildIdentifierGenerator() /*String columnName = column.getColumnName(); PrimaryKeyColumn pkCol = mdTable.getPrimaryKey().findPrimaryKeyColumnByName(columnName); if(pkCol == null) { logger.error("Column without corresponding PrimaryKeyColumn: {}", columnName); hasErrors = true; continue; } Generator generator = pkCol.getGenerator(); setPKColumnGenerator(mappings, clazz, tab, column, value, generator);*/ } } if (hasErrors) { // TODO PAOLO: se la PK non e' buona, tutta la tabella dovrebbe saltare logger.error("Skipping primary key"); return; } tab.setIdentifierValue(component); clazz.setIdentifier(component); clazz.setDiscriminatorValue(name); tab.setPrimaryKey(primaryKey); }
From source file:net.lshift.hibernate.migrations.AlterTableBuilder.java
License:Apache License
public AlterTableBuilder addForeignKey(String name, String[] columnNames, String referencedTable, String[] referencedColumns) { ForeignKey fk = new ForeignKey(); fk.setName(name);//from ww w . j av a 2s.co m for (String col : columnNames) fk.addColumn(new Column(col)); fk.setTable(new Table(table)); PrimaryKey refPrimaryKey = new PrimaryKey(); for (String col : referencedColumns) refPrimaryKey.addColumn(new Column(col)); Table refTable = new Table(referencedTable); refTable.setPrimaryKey(refPrimaryKey); fk.setReferencedTable(refTable); String defaultCatalog = config.getProperties().getProperty(Environment.DEFAULT_CATALOG); String defaultSchema = config.getProperties().getProperty(Environment.DEFAULT_SCHEMA); // fk.sqlConstraintString appears to generate incorrect SQL against MySQL in some instances. // The referenced columns are not always correctly listed. // alterFragments.add(" add index " + fk.getName() + " (" + StringHelper.join(", ", columnNames) + // "), add constraint " + fk.getName() + " foreign key (" + StringHelper.join(", ", columnNames) + // " references " + referencedTable + " (" + StringHelper.join(", ", referencedColumns) + ")"); alterFragments.add(fk.sqlConstraintString(dialect, fk.getName(), defaultCatalog, defaultSchema)); return this; }
From source file:net.lshift.hibernate.migrations.AlterTableBuilder.java
License:Apache License
public AlterTableBuilder addPrimaryKey(String... cols) { PrimaryKey pk = new PrimaryKey(); for (String col : cols) { pk.addColumn(new Column(col)); }// www . j ava 2s . co m alterFragments.add("add " + pk.sqlConstraintString(dialect)); return this; }
From source file:net.lshift.hibernate.migrations.AlterTableBuilder.java
License:Apache License
public AlterTableBuilder replacePrimaryKey(String... cols) { PrimaryKey pk = new PrimaryKey(); for (String col : cols) { pk.addColumn(new Column(col)); }//from w w w . jav a2s.co m if (dialectExtension.supportsPrimaryKeyReplace()) { alterFragments.add("drop primary key, add " + pk.sqlConstraintString(dialect)); } else { dropPrimaryKey().addPrimaryKey(cols); } return this; }
From source file:net.lshift.hibernate.migrations.CreateTableBuilder.java
License:Apache License
public PrimaryKey getPrimaryKey() { PrimaryKey result = new PrimaryKey(); for (String pk : primaryKeys) result.addColumn(new Column(pk)); return result; }
From source file:org.openflexo.jdbc.hbn.MyDBTest.java
License:Open Source License
@Test @TestOrder(4)/* w w w.j a v a2 s .c o m*/ public void testDeclareJDBCMetaData() { table = metadataCollector.addTable("", "", "T_Dynamic_Table_2", null, false); table.setName("T_Dynamic_Table_2"); col = new Column(); col.setName("pouet"); col.setLength(256); col.setSqlType("CHAR(32)"); col.setNullable(false); table.addColumn(col); PrimaryKey pk = new PrimaryKey(table); pk.addColumn(col); UniqueKey uk1 = new UniqueKey(); uk1.setName("Nom_Unique"); uk1.setTable(table); uk1.addColumn(col); table.addUniqueKey(uk1); col2 = new Column(); col2.setName("padam"); col2.setLength(256); col2.setSqlType("CHAR(32)"); col2.setNullable(true); table.addColumn(col2); // pour rire les couples "Nom + Prenom" doivent tre uniques UniqueKey uk = new UniqueKey(); uk.setName("Couple_Nom_Prenom_Unique"); uk.setTable(table); uk.addColumn(col); uk.addColumn(col2); table.addUniqueKey(uk); // une colonne de clef etrangre vers T_Adresse col3 = new Column(); col3.setName("id_addr"); col3.setLength(16); col3.setSqlType("INTEGER"); col3.setNullable(true); table.addColumn(col3); // ********** // Creation / Dfinition de la table T_Adresse table2 = metadataCollector.addTable("", "", "T_Adresse_2", null, false); table2.setName("T_Adresse_2"); col4 = new Column(); col4.setName("Id"); col4.setLength(16); col4.setSqlType("INTEGER"); col4.setNullable(false); table2.addColumn(col4); pk = new PrimaryKey(table2); pk.addColumn(col); uk1 = new UniqueKey(); uk1.setName("Id_Unique"); uk1.setTable(table2); uk1.addColumn(col4); table.addUniqueKey(uk1); col5 = new Column(); col5.setName("Adresse"); col5.setLength(512); col5.setSqlType("CHAR(512)"); col5.setNullable(true); table2.addColumn(col5); }
From source file:org.openflexo.technologyadapter.jdbc.model.DynamicModelBuilder.java
License:Open Source License
public Metadata buildDynamicModel() { Metadata metadata = metadataCollector.buildMetadataInstance(metadataBuildingContext); Database database = metadata.getDatabase(); // ********** // Creation / Dfinition de la table T_Dynamic_Table Table table = metadataCollector.addTable("", "", "T_Dynamic_Table", null, false); table.setName("T_Dynamic_Table"); Column col = new Column(); col.setName("pouet"); col.setLength(256);//from ww w . j a v a 2 s .c o m col.setSqlType("CHAR(256)"); col.setNullable(false); table.addColumn(col); PrimaryKey pk = new PrimaryKey(table); pk.addColumn(col); UniqueKey uk1 = new UniqueKey(); uk1.setName("Nom_Unique"); uk1.setTable(table); uk1.addColumn(col); table.addUniqueKey(uk1); Column col2 = new Column(); col2.setName("padam"); col2.setLength(256); col2.setSqlType("CHAR(256)"); col2.setNullable(true); table.addColumn(col2); // pour rire les couples "Nom + Prenom" doivent tre uniques UniqueKey uk = new UniqueKey(); uk.setName("Couple_Nom_Prenom_Unique"); uk.setTable(table); uk.addColumn(col); uk.addColumn(col2); table.addUniqueKey(uk); // une colonne de clef etrangre vers T_Adresse Column col3 = new Column(); col3.setName("id_addr"); col3.setLength(16); col3.setSqlType("INTEGER"); col3.setNullable(true); table.addColumn(col3); // ********** // Creation / Dfinition de la table T_Adresse Table table2 = metadataCollector.addTable("", "", "T_Adresse", null, false); table2.setName("T_Adresse"); Column col4 = new Column(); col4.setName("Id"); col4.setLength(16); col4.setSqlType("INTEGER"); col4.setNullable(false); table2.addColumn(col4); pk = new PrimaryKey(table2); pk.addColumn(col); uk1 = new UniqueKey(); uk1.setName("Id_Unique"); uk1.setTable(table2); uk1.addColumn(col4); table.addUniqueKey(uk1); Column col5 = new Column(); col5.setName("Adresse"); col5.setLength(512); col5.setSqlType("CHAR(512)"); col5.setNullable(true); table2.addColumn(col5); // ************************ // Creation de l'entit persiste "Dynamic_Class" RootClass pClass = new RootClass(metadataBuildingContext); pClass.setEntityName("Dynamic_Class"); pClass.setJpaEntityName("Dynamic_Class"); pClass.setTable(table); metadataCollector.addEntityBinding(pClass); // Creation d'une proprit (clef) et son mapping Property prop = new Property(); prop.setName("Nom"); SimpleValue value = new SimpleValue((MetadataImplementor) metadata, table); value.setTypeName("java.lang.String"); value.setIdentifierGeneratorStrategy("assigned"); value.addColumn(col); value.setTable(table); prop.setValue(value); pClass.setDeclaredIdentifierProperty(prop); pClass.setIdentifierProperty(prop); pClass.setIdentifier(value); // Creation d'une proprit et son mapping prop = new Property(); prop.setName("Prenom"); value = new SimpleValue((MetadataImplementor) metadata, table); value.setTypeName(String.class.getCanonicalName()); value.addColumn(col2); value.setTable(table); prop.setValue(value); pClass.addProperty(prop); // ************************ // Creation de l'entit persiste "Adresse" RootClass pClass2 = new RootClass(metadataBuildingContext); pClass2.setEntityName("Adresse"); pClass2.setJpaEntityName("Adresse"); pClass2.setTable(table2); metadataCollector.addEntityBinding(pClass2); // Creation d'une proprit (clef) et son mapping prop = new Property(); prop.setName("Identifiant"); value = new SimpleValue((MetadataImplementor) metadata, table2); value.setTypeName("java.lang.Integer"); value.setIdentifierGeneratorStrategy("native"); value.addColumn(col4); value.setTable(table2); prop.setValue(value); pClass2.setDeclaredIdentifierProperty(prop); pClass2.setIdentifierProperty(prop); pClass2.setIdentifier(value); // Creation d'une proprit et son mapping prop = new Property(); prop.setName("Prenom"); value = new SimpleValue((MetadataImplementor) metadata, table2); value.setTypeName(String.class.getCanonicalName()); value.addColumn(col5); value.setTable(table2); prop.setValue(value); pClass2.addProperty(prop); try { ((MetadataImplementor) metadata).validate(); } catch (MappingException e) { System.out.println("Validation Error: " + e.getMessage()); } return metadata; }
From source file:org.processbase.engine.bam.db.ScriptGenerator.java
License:Open Source License
public ArrayList<String> getCreateTableScript(MetaKpi metaKpi, int type) { try {/*from w w w . java 2 s .co m*/ Configuration config = new Configuration(); Dialect d = (Dialect) Class.forName(BAMConstants.BAM_DB_DIALECT).newInstance(); Mappings mappings = config.createMappings(); table = mappings.addTable(null, null, metaKpi.getCode(), null, false); Column id = new Column("ID"); SimpleValue idVal = new SimpleValue(table); idVal.setTypeName(TypeFactory.basic("long").getName()); id.setValue(idVal); Column kpiTimeStamp = new Column("KPI_TIMESTAMP"); kpiTimeStamp.setSqlType(TypeFactory.basic(java.util.Date.class.getName()).getName()); Column kpiYear = new Column("KPI_YEAR"); SimpleValue kpiYearVal = new SimpleValue(table); kpiYearVal.setTypeName(TypeFactory.basic("short").getName()); kpiYear.setLength(4); kpiYear.setValue(kpiYearVal); addIndex(kpiYear); Column kpiQuater = new Column("KPI_QUATER"); SimpleValue kpiQuaterVal = new SimpleValue(table); kpiQuaterVal.setTypeName(TypeFactory.basic("short").getName()); kpiQuater.setLength(4); kpiQuater.setValue(kpiQuaterVal); addIndex(kpiQuater); Column kpiMonth = new Column("KPI_MONTH"); SimpleValue kpiMonthVal = new SimpleValue(table); kpiMonthVal.setTypeName(TypeFactory.basic("short").getName()); kpiMonth.setLength(4); kpiMonth.setValue(kpiMonthVal); addIndex(kpiMonth); Column kpiWeek = new Column("KPI_WEEK"); SimpleValue kpiWeekVal = new SimpleValue(table); kpiWeekVal.setTypeName(TypeFactory.basic("short").getName()); kpiWeek.setLength(4); kpiWeek.setValue(kpiWeekVal); addIndex(kpiWeek); Column kpiDay = new Column("KPI_DAY"); SimpleValue kpiDayVal = new SimpleValue(table); kpiDayVal.setTypeName(TypeFactory.basic("short").getName()); kpiDay.setLength(4); kpiDay.setValue(kpiDayVal); addIndex(kpiDay); Column kpiHour = new Column("KPI_HOUR"); SimpleValue kpiHourVal = new SimpleValue(table); kpiHourVal.setTypeName(TypeFactory.basic("short").getName()); kpiHour.setLength(4); kpiHour.setValue(kpiHourVal); addIndex(kpiHour); Column kpiMinute = new Column("KPI_MINUTE"); SimpleValue kpiMinuteVal = new SimpleValue(table); kpiMinuteVal.setTypeName(TypeFactory.basic("short").getName()); kpiMinute.setLength(4); kpiMinute.setValue(kpiMinuteVal); addIndex(kpiMinute); Column kpiDayOfWeek = new Column("KPI_DAY_OF_WEEK"); SimpleValue kpiDayOfWeekVal = new SimpleValue(table); kpiDayOfWeekVal.setTypeName(TypeFactory.basic("short").getName()); kpiDayOfWeek.setLength(4); kpiDayOfWeek.setValue(kpiDayOfWeekVal); addIndex(kpiDayOfWeek); Column serverId = new Column("SERVER_ID"); SimpleValue serverIdVal = new SimpleValue(table); serverIdVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); serverId.setValue(serverIdVal); serverId.setLength(200); addIndex(serverId); Column eventId = new Column("EVENT_ID"); SimpleValue eventIdVal = new SimpleValue(table); eventIdVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); eventId.setValue(eventIdVal); eventId.setLength(200); addIndex(eventId); Column eventName = new Column("EVENT_NAME"); SimpleValue eventNameVal = new SimpleValue(table); eventNameVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); eventName.setValue(eventNameVal); eventName.setLength(200); addIndex(eventName); Column processDefinitionId = new Column("PROCESS_DEF_ID"); SimpleValue processDefinitionIdVal = new SimpleValue(table); processDefinitionIdVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); processDefinitionId.setValue(processDefinitionIdVal); processDefinitionId.setLength(200); addIndex(processDefinitionId); Column processDefinitionName = new Column("PROCESS_DEF_NAME"); SimpleValue processDefinitionNameVal = new SimpleValue(table); processDefinitionNameVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); processDefinitionName.setValue(processDefinitionNameVal); processDefinitionName.setLength(200); addIndex(processDefinitionName); Column processDefinitionVersion = new Column("PROCESS_DEF_VERSION"); SimpleValue processDefinitionVersionVal = new SimpleValue(table); processDefinitionVersionVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); processDefinitionVersion.setValue(processDefinitionVersionVal); processDefinitionVersion.setLength(200); addIndex(processDefinitionVersion); Column processInstanceId = new Column("PROCESS_INST_ID"); SimpleValue processInstanceIdVal = new SimpleValue(table); processInstanceIdVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); processInstanceId.setValue(processInstanceIdVal); processInstanceId.setLength(200); addIndex(processInstanceId); Column activityInstanceId = new Column("ACT_INST_ID"); SimpleValue activityInstanceIdVal = new SimpleValue(table); activityInstanceIdVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); activityInstanceId.setValue(activityInstanceIdVal); activityInstanceId.setLength(200); addIndex(activityInstanceId); Column activityInstanceName = new Column("ACT_INST_NAME"); SimpleValue activityInstanceNameVal = new SimpleValue(table); activityInstanceNameVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); activityInstanceName.setValue(activityInstanceNameVal); activityInstanceName.setLength(200); addIndex(activityInstanceName); Column activityInstanceIter = new Column("ACT_INST_ITER"); SimpleValue activityInstanceIterVal = new SimpleValue(table); activityInstanceIterVal.setTypeName(TypeFactory.basic("java.lang.String").getName()); activityInstanceIter.setValue(activityInstanceIterVal); activityInstanceIter.setLength(200); addIndex(activityInstanceIter); PrimaryKey key = new PrimaryKey(); key.setName(metaKpi.getCode() + "_PK"); key.addColumn(id); table.setPrimaryKey(key); table.addColumn(id); table.addColumn(kpiTimeStamp); table.addColumn(kpiYear); table.addColumn(kpiQuater); table.addColumn(kpiMonth); table.addColumn(kpiWeek); table.addColumn(kpiDay); table.addColumn(kpiDayOfWeek); table.addColumn(kpiHour); table.addColumn(kpiMinute); table.addColumn(serverId); table.addColumn(eventId); table.addColumn(eventName); table.addColumn(processDefinitionId); table.addColumn(processDefinitionVersion); table.addColumn(processDefinitionName); table.addColumn(processInstanceId); table.addColumn(activityInstanceId); table.addColumn(activityInstanceName); table.addColumn(activityInstanceIter); for (Iterator<MetaDim> i = metaKpi.getMetaDims().iterator(); i.hasNext();) { MetaDim metaDim = i.next(); Column dim = new Column(metaDim.getCode()); SimpleValue dimVal = new SimpleValue(table); dimVal.setTypeName(TypeFactory.basic(metaDim.getValueType()).getName()); dim.setValue(dimVal); if (metaDim.getValueLength() != null) { dim.setLength(metaDim.getValueLength()); } table.addColumn(dim); addIndex(dim); } for (Iterator<MetaFact> i = metaKpi.getMetaFacts().iterator(); i.hasNext();) { MetaFact metaFact = i.next(); Column dim = new Column(metaFact.getCode()); SimpleValue dimVal = new SimpleValue(table); dimVal.setTypeName(TypeFactory.basic("java.math.BigDecimal").getName()); dim.setValue(dimVal); table.addColumn(dim); } if (type == CREATE_SCRIPT) { result.add(0, table.sqlCreateString(d, config.buildMapping(), null, null)); } else if (type == DROP_SCRIPT) { result.clear(); result.add(table.sqlDropString(d, null, null)); } } catch (Exception ex) { ex.printStackTrace(); } return result; }