Как используется метод buildMappings в классе org.hibernate.cfg.Configuration?Метод возвращает void.
Что он делает?Я прошел через hibernate-core-3.6.9.Final.jar и код был таким, как показано ниже .. (Пожалуйста, обратитесь к разделу кода)
Фрагмент кода взят из hibernate-core-3.6.9.Final.jar:
public void buildMappings()
{
secondPassCompile();
}
protected void secondPassCompile()
throws MappingException
{
log.trace("Starting secondPassCompile() processing");
if (!this.isDefaultProcessed)
{
Object isDelimited = this.reflectionManager.getDefaults().get("delimited-identifier");
if ((isDelimited != null) && (isDelimited == Boolean.TRUE)) {
getProperties().put("hibernate.globally_quoted_identifiers", "true");
}
AnnotationBinder.bindDefaults(createMappings());
this.isDefaultProcessed = true;
}
this.metadataSourceQueue.syncAnnotatedClasses();
this.metadataSourceQueue.processMetadata(determineMetadataSourcePrecedence());
for (CacheHolder holder : this.caches) {
if (holder.isClass) {
applyCacheConcurrencyStrategy(holder);
} else {
applyCollectionCacheConcurrencyStrategy(holder);
}
}
this.caches.clear();
try
{
this.inSecondPass = true;
processSecondPassesOfType(PkDrivenByDefaultMapsIdSecondPass.class);
processSecondPassesOfType(SetSimpleValueTypeSecondPass.class);
processSecondPassesOfType(CopyIdentifierComponentSecondPass.class);
processFkSecondPassInOrder();
processSecondPassesOfType(CreateKeySecondPass.class);
processSecondPassesOfType(SecondaryTableSecondPass.class);
originalSecondPassCompile();
this.inSecondPass = false;
}
catch (RecoverableException e)
{
throw ((RuntimeException)e.getCause());
}
for (Map.Entry<Table, List<UniqueConstraintHolder>> tableListEntry : this.uniqueConstraintHoldersByTable.entrySet())
{
table = (Table)tableListEntry.getKey();
List<UniqueConstraintHolder> uniqueConstraints = (List)tableListEntry.getValue();
uniqueIndexPerTable = 0;
for (UniqueConstraintHolder holder : uniqueConstraints)
{
uniqueIndexPerTable++;
String keyName = StringHelper.isEmpty(holder.getName()) ? "key" + uniqueIndexPerTable : holder.getName();
buildUniqueKeyFromColumnNames(table, keyName, holder.getColumns());
}
}
Table table;
int uniqueIndexPerTable;
applyConstraintsToDDL();
}
Я так понимаю, что он выполняет некоторую обработку первичного ключа, уникальных ограничений ... но на каких файлах hbm он это делает?и каково точное использование этой обработки и этого метода buildMappings ..?