/** * Create raw mapping info for the given instance. */ protected VersionMappingInfo newMappingInfo(Version version) { return new VersionMappingInfo(); }
/** * Clear mapping information, including strategy. */ public void clearMapping() { _strategy = null; _cols = Schemas.EMPTY_COLUMNS; _idx = null; _info.clear(); setResolve(MODE_MAPPING | MODE_MAPPING_INIT, false); }
/** * Return the columns set for this version, based on the given templates. */ public Column[] getColumns(Version version, Column[] templates, boolean adapt) { if (spansMultipleTables(templates)) return getMultiTableColumns(version, templates, adapt); Table table = getSingleTable(version, templates); version.getMappingRepository().getMappingDefaults().populateColumns (version, table, templates); return createColumns(version, null, templates, table, adapt); }
public void map(boolean adapt) { ClassMapping cls = vers.getClassMapping(); if (cls.getJoinablePCSuperclassMapping() != null || cls.getEmbeddingMetaData() != null) throw new MetaDataException(_loc.get("not-base-vers", cls)); VersionMappingInfo info = vers.getMappingInfo(); info.assertNoJoin(vers, true); info.assertNoForeignKey(vers, !adapt); info.assertNoUnique(vers, false); Column tmplate = new Column(); tmplate.setJavaType(getJavaType()); tmplate.setName("versn"); Column[] cols = info.getColumns(vers, new Column[]{ tmplate }, adapt); cols[0].setVersionStrategy(this); vers.setColumns(cols); vers.setColumnIO(info.getColumnIO()); Index idx = info.getIndex(vers, cols, adapt); vers.setIndex(idx); }
/** * Synchronize internal information with the mapping data for the given * version. */ public void syncWith(Version version) { clear(false); ClassMapping cls = version.getClassMapping(); Column[] cols = version.getColumns(); setColumnIO(version.getColumnIO()); syncColumns(version, cols, false); syncIndex(version, version.getIndex()); if (version.getStrategy() == null || version.getStrategy() instanceof SuperclassVersionStrategy) return; // explicit version strategy if: // - unmapped class and version mapped // - mapped base class // - mapped subclass that doesn't rely on superclass version String strat = version.getStrategy().getAlias(); if ((!cls.isMapped() && !NoneVersionStrategy.ALIAS.equals(strat)) || (cls.isMapped() && cls.getJoinablePCSuperclassMapping() == null)) setStrategy(strat); }
/** * Update {@link MappingInfo} with our current mapping information. */ public void syncMappingInfo() { _info.syncWith(this); // setup the version field with our mapping info FieldMapping fm = _mapping.getVersionFieldMapping(); if (fm != null) { // erase explicit strategy if it is standard version strategy for // field type if (_info.getStrategy() != null && _info.getStrategy().equals(getMappingRepository(). defaultStrategy(this, fm).getAlias())) _info.setStrategy(null); fm.getMappingInfo().clear(); fm.getValueInfo().clear(); fm.getKeyMapping().getValueInfo().clear(); fm.getElementMapping().getValueInfo().clear(); fm.getValueInfo().copy(_info); _info.clear(); } }
protected int getJavaType(int i) { if (_javaTypes == null) { _javaTypes = new Integer[vers.getMappingInfo().getColumns().size()]; } if (_javaTypes[i] == null) { Column col = (Column)vers.getMappingInfo().getColumns().get(i); if (!StringUtils.isEmpty(col.getTypeName())) { Class javaType = Schemas.getJavaType(col.getType(), col.getSize(), col.getDecimalDigits()); _javaTypes[i] = JavaTypes.getTypeCode(javaType); } else { _javaTypes[i] = JavaTypes.INT; } } return _javaTypes[i]; }
@Override protected boolean startExtendedClass(String elem, Attributes attrs) throws SAXException { ClassMapping mapping = (ClassMapping) currentElement(); String strategy = attrs.getValue("strategy"); if (!StringUtils.isEmpty(strategy)) mapping.getMappingInfo().setStrategy(strategy); String versionStrat = attrs.getValue("version-strategy"); if (!StringUtils.isEmpty(versionStrat)) mapping.getVersion().getMappingInfo().setStrategy(versionStrat); String discrimStrat = attrs.getValue("discriminator-strategy"); if (!StringUtils.isEmpty(discrimStrat)) mapping.getDiscriminator().getMappingInfo().setStrategy(discrimStrat); String subclassFetchMode = attrs.getValue("subclass-fetch-mode"); if (!StringUtils.isEmpty(subclassFetchMode)) mapping.setSubclassFetchMode(toEagerFetchModeConstant(subclassFetchMode)); return true; } }
public void map(boolean adapt) { ClassMapping cls = vers.getClassMapping(); if (cls.getJoinablePCSuperclassMapping() != null || cls.getEmbeddingMetaData() != null) throw new MetaDataException(_loc.get("not-base-vers", cls)); vers.getMappingInfo().assertNoSchemaComponents(vers, true); }
Column[] partTemplates = cols.toArray(new Column[cols.size()]); def.populateColumns(vers, table, partTemplates); result.addAll(Arrays.asList(createColumns(vers, null, partTemplates, table, adapt)));
/** * Setup mapping. */ private void resolveMapping() { // if there is a version field, copy mapping info from it FieldMapping fm = _mapping.getVersionFieldMapping(); if (fm != null) _info.copy(fm.getValueInfo()); // map strategy MappingRepository repos = getMappingRepository(); if (_strategy == null) repos.getStrategyInstaller().installStrategy(this); Log log = repos.getLog(); if (log.isTraceEnabled()) log.trace(_loc.get("strategy", this, _strategy.getAlias())); // mark columns as mapped Column[] cols = getColumns(); ColumnIO io = getColumnIO(); for (int i = 0; i < cols.length; i++) { if (io.isInsertable(i, false)) cols[i].setFlag(Column.FLAG_DIRECT_INSERT, true); if (io.isUpdatable(i, false)) cols[i].setFlag(Column.FLAG_DIRECT_UPDATE, true); } }
info.assertNoJoin(vers, true); info.assertNoForeignKey(vers, !adapt); info.assertNoUnique(vers, false); if (info.getColumns().size() > 1) { Column[] templates = new Column[info.getColumns().size()]; for (int i = 0; i < info.getColumns().size(); i++) { templates[i] = new Column(); Column infoColumn = (Column)info.getColumns().get(i); templates[i].setTableIdentifier(infoColumn.getTableIdentifier()); templates[i].setType(infoColumn.getType()); Column[] cols = info.getColumns(vers, templates, adapt); for (int i = 0; i < cols.length; i++) cols[i].setVersionStrategy(this); vers.setColumns(cols); vers.setColumnIO(info.getColumnIO()); } else { Column tmplate = new Column(); Column[] cols = info.getColumns(vers, new Column[]{ tmplate }, adapt); cols[0].setVersionStrategy(this); vers.setColumns(cols); vers.setColumnIO(info.getColumnIO()); Index idx = info.getIndex(vers, cols, adapt); vers.setIndex(idx);
/** * Synchronize internal information with the mapping data for the given * version. */ public void syncWith(Version version) { clear(false); ClassMapping cls = version.getClassMapping(); Column[] cols = version.getColumns(); setColumnIO(version.getColumnIO()); syncColumns(version, cols, false); syncIndex(version, version.getIndex()); if (version.getStrategy() == null || version.getStrategy() instanceof SuperclassVersionStrategy) return; // explicit version strategy if: // - unmapped class and version mapped // - mapped base class // - mapped subclass that doesn't rely on superclass version String strat = version.getStrategy().getAlias(); if ((!cls.isMapped() && !NoneVersionStrategy.ALIAS.equals(strat)) || (cls.isMapped() && cls.getJoinablePCSuperclassMapping() == null)) setStrategy(strat); } }
/** * Update {@link MappingInfo} with our current mapping information. */ public void syncMappingInfo() { _info.syncWith(this); // setup the version field with our mapping info FieldMapping fm = _mapping.getVersionFieldMapping(); if (fm != null) { // erase explicit strategy if it is standard version strategy for // field type if (_info.getStrategy() != null && _info.getStrategy().equals(getMappingRepository(). defaultStrategy(this, fm).getAlias())) _info.setStrategy(null); fm.getMappingInfo().clear(); fm.getValueInfo().clear(); fm.getKeyMapping().getValueInfo().clear(); fm.getElementMapping().getValueInfo().clear(); fm.getValueInfo().copy(_info); _info.clear(); } }
protected int getJavaType(int i) { if (_javaTypes == null) { _javaTypes = new Integer[vers.getMappingInfo().getColumns().size()]; } if (_javaTypes[i] == null) { Column col = (Column)vers.getMappingInfo().getColumns().get(i); if (!StringUtils.isEmpty(col.getTypeName())) { Class javaType = Schemas.getJavaType(col.getType(), col.getSize(), col.getDecimalDigits()); _javaTypes[i] = JavaTypes.getTypeCode(javaType); } else { _javaTypes[i] = JavaTypes.INT; } } return _javaTypes[i]; }
@Override protected boolean startExtendedClass(String elem, Attributes attrs) throws SAXException { ClassMapping mapping = (ClassMapping) currentElement(); String strategy = attrs.getValue("strategy"); if (!StringUtil.isEmpty(strategy)) mapping.getMappingInfo().setStrategy(strategy); String versionStrat = attrs.getValue("version-strategy"); if (!StringUtil.isEmpty(versionStrat)) mapping.getVersion().getMappingInfo().setStrategy(versionStrat); String discrimStrat = attrs.getValue("discriminator-strategy"); if (!StringUtil.isEmpty(discrimStrat)) mapping.getDiscriminator().getMappingInfo().setStrategy(discrimStrat); String subclassFetchMode = attrs.getValue("subclass-fetch-mode"); if (!StringUtil.isEmpty(subclassFetchMode)) mapping.setSubclassFetchMode(toEagerFetchModeConstant(subclassFetchMode)); return true; } }
public void map(boolean adapt) { ClassMapping cls = vers.getClassMapping(); if (cls.getJoinablePCSuperclassMapping() != null || cls.getEmbeddingMetaData() != null) throw new MetaDataException(_loc.get("not-base-vers", cls)); vers.getMappingInfo().assertNoSchemaComponents(vers, true); }
Column[] partTemplates = cols.toArray(new Column[cols.size()]); def.populateColumns(vers, table, partTemplates); result.addAll(Arrays.asList(createColumns(vers, null, partTemplates, table, adapt)));
/** * Setup mapping. */ private void resolveMapping() { // if there is a version field, copy mapping info from it FieldMapping fm = _mapping.getVersionFieldMapping(); if (fm != null) _info.copy(fm.getValueInfo()); // map strategy MappingRepository repos = getMappingRepository(); if (_strategy == null) repos.getStrategyInstaller().installStrategy(this); Log log = repos.getLog(); if (log.isTraceEnabled()) log.trace(_loc.get("strategy", this, _strategy.getAlias())); // mark columns as mapped Column[] cols = getColumns(); ColumnIO io = getColumnIO(); for (int i = 0; i < cols.length; i++) { if (io.isInsertable(i, false)) cols[i].setFlag(Column.FLAG_DIRECT_INSERT, true); if (io.isUpdatable(i, false)) cols[i].setFlag(Column.FLAG_DIRECT_UPDATE, true); } }
info.assertNoJoin(vers, true); info.assertNoForeignKey(vers, !adapt); info.assertNoUnique(vers, false); if (info.getColumns().size() > 1) { Column[] templates = new Column[info.getColumns().size()]; for (int i = 0; i < info.getColumns().size(); i++) { templates[i] = new Column(); Column infoColumn = (Column)info.getColumns().get(i); templates[i].setTableIdentifier(infoColumn.getTableIdentifier()); templates[i].setType(infoColumn.getType()); Column[] cols = info.getColumns(vers, templates, adapt); for (int i = 0; i < cols.length; i++) cols[i].setVersionStrategy(this); vers.setColumns(cols); vers.setColumnIO(info.getColumnIO()); } else { Column tmplate = new Column(); Column[] cols = info.getColumns(vers, new Column[]{ tmplate }, adapt); cols[0].setVersionStrategy(this); vers.setColumns(cols); vers.setColumnIO(info.getColumnIO()); Index idx = info.getIndex(vers, cols, adapt); vers.setIndex(idx);