use of org.hibernate.envers.internal.entities.EntityConfiguration in project hibernate-orm by hibernate.
the class ToOneRelationMetadataGenerator method addOneToOneNotOwning.
@SuppressWarnings({ "unchecked" })
void addOneToOneNotOwning(PropertyAuditingData propertyAuditingData, Value value, CompositeMapperBuilder mapper, String entityName) {
final OneToOne propertyValue = (OneToOne) value;
final String owningReferencePropertyName = propertyValue.getReferencedPropertyName();
final EntityConfiguration configuration = mainGenerator.getEntitiesConfigurations().get(entityName);
if (configuration == null) {
throw new MappingException("An audited relation to a non-audited entity " + entityName + "!");
}
final IdMappingData ownedIdMapping = configuration.getIdMappingData();
if (ownedIdMapping == null) {
throw new MappingException("An audited relation to a non-audited entity " + entityName + "!");
}
final String lastPropertyPrefix = MappingTools.createToOneRelationPrefix(owningReferencePropertyName);
final String referencedEntityName = propertyValue.getReferencedEntityName();
// Generating the id mapper for the relation
final IdMapper ownedIdMapper = ownedIdMapping.getIdMapper().prefixMappedProperties(lastPropertyPrefix);
// Storing information about this relation
mainGenerator.getEntitiesConfigurations().get(entityName).addToOneNotOwningRelation(propertyAuditingData.getName(), owningReferencePropertyName, referencedEntityName, ownedIdMapper, MappingTools.ignoreNotFound(value));
// Adding mapper for the id
final PropertyData propertyData = propertyAuditingData.getPropertyData();
mapper.addComposite(propertyData, new OneToOneNotOwningMapper(entityName, referencedEntityName, owningReferencePropertyName, propertyData, mainGenerator.getServiceRegistry()));
}
use of org.hibernate.envers.internal.entities.EntityConfiguration in project hibernate-orm by hibernate.
the class CollectionChangeWorkUnit method generateData.
@Override
public Map<String, Object> generateData(Object revisionData) {
fillDataWithId(data, revisionData);
final Map<String, Object> preGenerateData = new HashMap<>(data);
final EntityConfiguration entityConfig = enversService.getEntitiesConfigurations().get(getEntityName());
final PropertyMapper propertyMapper = entityConfig.getPropertyMapper();
// HHH-7681 - Use entity as 'oldObj' so fake bidirectional non-insertable fields are tracked properly.
propertyMapper.mapToMapFromEntity(sessionImplementor, data, entity, entity);
propertyMapper.mapModifiedFlagsToMapFromEntity(sessionImplementor, data, entity, entity);
propertyMapper.mapModifiedFlagsToMapForCollectionChange(collectionPropertyName, data);
data.putAll(preGenerateData);
return data;
}
Aggregations