org.hibernate.envers.boot.internal.LegacyModifiedColumnNamingStrategy Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-envers Show documentation
Show all versions of hibernate-envers Show documentation
Hibernate's entity version (audit/history) support
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.envers.boot.internal;
import org.hibernate.envers.boot.model.AttributeContainer;
import org.hibernate.envers.boot.spi.ModifiedColumnNamingStrategy;
import org.hibernate.envers.configuration.Configuration;
import org.hibernate.envers.configuration.internal.metadata.reader.PropertyAuditingData;
import org.hibernate.mapping.Value;
/**
* A {@link ModifiedColumnNamingStrategy} that adds modified columns with the following rules:
*
* - If an audit annotation modified column name is supplied, use it directly with no suffix.
* - If no audit annotation modified column name is present, use the property name appended with suffix.
*
*
* This is the default Envers modified column naming behavior.
*
* @author Chris Cranford
* @since 5.4.7
*/
public class LegacyModifiedColumnNamingStrategy extends AbstractModifiedColumnNamingStrategy {
@Override
public void addModifiedColumns(
Configuration configuration,
Value value,
AttributeContainer mapping,
PropertyAuditingData propertyAuditingData) {
final String columnName;
if ( propertyAuditingData.isModifiedFlagNameExplicitlySpecified() ) {
columnName = propertyAuditingData.getExplicitModifiedFlagName();
}
else {
columnName = propertyAuditingData.getModifiedFlagName();
}
mapping.addAttribute( createModifiedFlagAttribute( propertyAuditingData, configuration, columnName ) );
}
}