下面列出了怎么用org.hibernate.CustomEntityDirtinessStrategy的API类实例代码及写法,或者点击链接到github查看源代码。
@SuppressWarnings( {"SimplifiableIfStatement"})
private boolean isUnequivocallyNonDirty(Object entity) {
if ( entity instanceof SelfDirtinessTracker ) {
return ! persister.hasCollections() && ! ( (SelfDirtinessTracker) entity ).$$_hibernate_hasDirtyAttributes();
}
final CustomEntityDirtinessStrategy customEntityDirtinessStrategy =
getPersistenceContext().getSession().getFactory().getCustomEntityDirtinessStrategy();
if ( customEntityDirtinessStrategy.canDirtyCheck( entity, getPersister(), (Session) getPersistenceContext().getSession() ) ) {
return ! customEntityDirtinessStrategy.isDirty( entity, getPersister(), (Session) getPersistenceContext().getSession() );
}
if ( getPersister().hasMutableProperties() ) {
return false;
}
return false;
}
public int[] visitAttributes(CustomEntityDirtinessStrategy.AttributeChecker attributeChecker) {
databaseSnapshot = null;
index = 0;
final int[] indexes = new int[numberOfAttributes];
int count = 0;
for (; index < numberOfAttributes; index++ ) {
if ( attributeChecker.isDirty( this ) ) {
indexes[count++] = index;
}
}
return Arrays.copyOf( indexes, count );
}
@Override
public CustomEntityDirtinessStrategy getCustomEntityDirtinessStrategy() {
return delegate.getCustomEntityDirtinessStrategy();
}
@Override
public CustomEntityDirtinessStrategy getCustomEntityDirtinessStrategy() {
return getSessionFactoryOptions().getCustomEntityDirtinessStrategy();
}
@Override
public CustomEntityDirtinessStrategy getCustomEntityDirtinessStrategy() {
return delegate.getCustomEntityDirtinessStrategy();
}
@Override
public T applyCustomEntityDirtinessStrategy(CustomEntityDirtinessStrategy strategy) {
delegate.applyCustomEntityDirtinessStrategy( strategy );
return getThis();
}
@Override
public CustomEntityDirtinessStrategy getCustomEntityDirtinessStrategy() {
return customEntityDirtinessStrategy;
}
public void applyCustomEntityDirtinessStrategy(CustomEntityDirtinessStrategy strategy) {
this.customEntityDirtinessStrategy = strategy;
}
@Override
public SessionFactoryBuilder applyCustomEntityDirtinessStrategy(CustomEntityDirtinessStrategy strategy) {
this.optionsBuilder.applyCustomEntityDirtinessStrategy( strategy );
return this;
}
public CustomEntityDirtinessStrategy getCustomEntityDirtinessStrategy() {
return sessionFactoryImplementor.getCustomEntityDirtinessStrategy();
}
/**
* @todo make a Service ?
*/
CustomEntityDirtinessStrategy getCustomEntityDirtinessStrategy();
/**
* Specifies a custom entity dirtiness strategy to be applied to the SessionFactory. See the contract
* of {@link org.hibernate.CustomEntityDirtinessStrategy} for details.
*
* @param strategy The custom strategy to be used.
*
* @return {@code this}, for method chaining
*
* @see org.hibernate.cfg.AvailableSettings#CUSTOM_ENTITY_DIRTINESS_STRATEGY
*/
SessionFactoryBuilder applyCustomEntityDirtinessStrategy(CustomEntityDirtinessStrategy strategy);
CustomEntityDirtinessStrategy getCustomEntityDirtinessStrategy();