org.hibernate.type.Type.isEqual()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(7.5k)|赞(0)|评价(0)|浏览(114)

本文整理了Java中org.hibernate.type.Type.isEqual()方法的一些代码示例,展示了Type.isEqual()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Type.isEqual()方法的具体详情如下:
包路径:org.hibernate.type.Type
类名称:Type
方法名:isEqual

Type.isEqual介绍

[英]Compare two instances of the class mapped by this type for persistence "equality" (equality of persistent state).

This should always equate to some form of comparison of the value's internal state. As an example, for something like a date the comparison should be based on its internal "time" state based on the specific portion it is meant to represent (timestamp, date, time).
[中]比较此类型映射的类的两个实例的持久性“相等”(持久状态相等)。
这应该总是等同于某种形式的价值观内部状态的比较。例如,对于日期之类的东西,比较应该基于其内部“时间”状态,基于它要表示的特定部分(时间戳、日期、时间)。

代码示例

代码示例来源:origin: hibernate/hibernate-orm

@Override
public boolean equals(Object other) {
  EntityUniqueKey that = (EntityUniqueKey) other;
  return that != null && that.entityName.equals( entityName )
      && that.uniqueKeyName.equals( uniqueKeyName )
      && keyType.isEqual( that.key, key );
}

代码示例来源:origin: hibernate/hibernate-orm

@Override
public boolean equals(Object other) {
  if ( this == other ) {
    return true;
  }
  if ( other == null || getClass() != other.getClass() ) {
    return false;
  }
  final CollectionKey that = (CollectionKey) other;
  return that.role.equals( role )
      && keyType.isEqual( that.key, key, factory );
}

代码示例来源:origin: hibernate/hibernate-orm

@Override
public boolean equals(Object other) {
  if ( other == null ) {
    return false;
  }
  if ( this == other ) {
    return true;
  }
  if ( hashCode != other.hashCode() || !( other instanceof CacheKeyImplementation) ) {
    //hashCode is part of this check since it is pre-calculated and hash must match for equals to be true
    return false;
  }
  final CacheKeyImplementation that = (CacheKeyImplementation) other;
  return Objects.equals( entityOrRoleName, that.entityOrRoleName )
      && type.isEqual( id, that.id )
      && Objects.equals( tenantId, that.tenantId );
}

代码示例来源:origin: hibernate/hibernate-orm

private boolean isSame(Object[] otherValues) {
    // lengths have already been verified at this point
    for ( int i = 0; i < naturalIdTypes.length; i++ ) {
      if ( ! naturalIdTypes[i].isEqual( values[i], otherValues[i], persister.getFactory() ) ) {
        return false;
      }
    }
    return true;
  }
}

代码示例来源:origin: hibernate/hibernate-orm

@Override
public boolean equals(Object other) {
  if ( this == other ) {
    return true;
  }
  if ( other == null || getClass() != other.getClass() ) {
    return false;
  }
  final TypedValue that = (TypedValue) other;
  return type.getReturnedClass() == that.type.getReturnedClass()
      && type.isEqual( that.value, value );
}

代码示例来源:origin: hibernate/hibernate-orm

private boolean areEqual(Object newObj, Object oldObj) {
    // Should a Type have been specified on the property mapper, delegate there to make sure
    // that proper equality comparison occurs based on the Type's semantics rather than the
    // generalized EqualsHelper #areEqual call.
    if ( propertyData.getType() != null ) {
      return propertyData.getType().isEqual( newObj, oldObj );
    }
    // todo (6.0) - Confirm if this is still necessary as everything should use a JavaTypeDescriptor.
    //		This was maintained for legacy 5.2 behavior only.
    return Objects.deepEquals( newObj, oldObj );
  }
}

代码示例来源:origin: hibernate/hibernate-orm

private boolean copyState(Object entity, Type[] types, Object[] state, SessionFactory sf) {
  // copy the entity state into the state array and return true if the state has changed
  ClassMetadata metadata = sf.getClassMetadata( entity.getClass() );
  Object[] newState = metadata.getPropertyValues( entity );
  int size = newState.length;
  boolean isDirty = false;
  for ( int index = 0; index < size; index++ ) {
    if ( ( state[index] == LazyPropertyInitializer.UNFETCHED_PROPERTY &&
        newState[index] != LazyPropertyInitializer.UNFETCHED_PROPERTY ) ||
        ( state[index] != newState[index] && !types[index].isEqual( state[index], newState[index] ) ) ) {
      isDirty = true;
      state[index] = newState[index];
    }
  }
  return isDirty;
}

代码示例来源:origin: hibernate/hibernate-orm

@Override
public boolean isEqual(final Object x, final Object y) throws HibernateException {
  if ( x == y ) {
    return true;
  }
  // null value and empty component are considered equivalent
  for ( int i = 0; i < propertySpan; i++ ) {
    if ( !propertyTypes[i].isEqual( getPropertyValue( x, i ), getPropertyValue( y, i ) ) ) {
      return false;
    }
  }
  return true;
}

代码示例来源:origin: hibernate/hibernate-orm

@Override
public boolean isEqual(final Object x, final Object y, final SessionFactoryImplementor factory)
    throws HibernateException {
  if ( x == y ) {
    return true;
  }
  // null value and empty component are considered equivalent
  for ( int i = 0; i < propertySpan; i++ ) {
    if ( !propertyTypes[i].isEqual( getPropertyValue( x, i ), getPropertyValue( y, i ), factory ) ) {
      return false;
    }
  }
  return true;
}

代码示例来源:origin: hibernate/hibernate-orm

private boolean sameIdentifier(final EntityKey otherKey) {
  return persister.getIdentifierType().isEqual( otherKey.identifier, this.identifier, persister.getFactory() );
}

代码示例来源:origin: hibernate/hibernate-orm

return false;
if ( !positionalParameterTypes[i].isEqual( positionalParameterValues[i], that.positionalParameterValues[i] ) ) {
  return false;

代码示例来源:origin: hibernate/hibernate-orm

protected Object getObjectFromList(List results, Serializable id, SharedSessionContractImplementor session) {
  for ( Object obj : results ) {
    final boolean equal = persister.getIdentifierType().isEqual(
        id,
        session.getContextEntityIdentifier( obj ),
        session.getFactory()
    );
    if ( equal ) {
      return obj;
    }
  }
  return null;
}

代码示例来源:origin: hibernate/hibernate-orm

protected Object getObjectFromList(List results, Serializable id, SharedSessionContractImplementor session) {
  for ( Object obj : results ) {
    final boolean equal = persister.getIdentifierType().isEqual(
        id,
        session.getContextEntityIdentifier( obj ),
        session.getFactory()
    );
    if ( equal ) {
      return obj;
    }
  }
  return null;
}

代码示例来源:origin: hibernate/hibernate-orm

/**
 * Removes entity entries that have an equal identifier with the incoming entity instance
 *
 * @param list The list containing the entity instances
 * @param entityInstance The entity instance to match elements.
 * @param entityName The entity name
 * @param session The session
 */
public static void identityRemove(
    Collection list,
    Object entityInstance,
    String entityName,
    SharedSessionContractImplementor session) {
  if ( entityInstance != null && ForeignKeys.isNotTransient( entityName, entityInstance, null, session ) ) {
    final EntityPersister entityPersister = session.getFactory().getEntityPersister( entityName );
    final Type idType = entityPersister.getIdentifierType();
    final Serializable idOfCurrent = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, entityInstance, session );
    final Iterator itr = list.iterator();
    while ( itr.hasNext() ) {
      final Serializable idOfOld = ForeignKeys.getEntityIdentifierIfNotUnsaved( entityName, itr.next(), session );
      if ( idType.isEqual( idOfCurrent, idOfOld, session.getFactory() ) ) {
        itr.remove();
        break;
      }
    }
  }
}

代码示例来源:origin: hibernate/hibernate-orm

if ( persister.getIdentifierType().isEqual( id, key.getIdentifier() ) ) {
  end = i;

代码示例来源:origin: hibernate/hibernate-orm

.isEqual( xid, yid, factory );

代码示例来源:origin: hibernate/hibernate-orm

idType.isEqual( id, resultId, factory );

代码示例来源:origin: hibernate/hibernate-orm

/**
 * make sure user didn't mangle the id
 */
public void checkId(Object object, EntityPersister persister, Serializable id, SessionImplementor session)
    throws HibernateException {
  if ( id != null && id instanceof DelayedPostInsertIdentifier ) {
    // this is a situation where the entity id is assigned by a post-insert generator
    // and was saved outside the transaction forcing it to be delayed
    return;
  }
  if ( persister.canExtractIdOutOfEntity() ) {
    Serializable oid = persister.getIdentifier( object, session );
    if ( id == null ) {
      throw new AssertionFailure( "null id in " + persister.getEntityName() + " entry (don't flush the Session after an exception occurs)" );
    }
    if ( !persister.getIdentifierType().isEqual( id, oid, session.getFactory() ) ) {
      throw new HibernateException(
          "identifier of an instance of " + persister.getEntityName() + " was altered from "
              + id + " to " + oid
      );
    }
  }
}

代码示例来源:origin: hibernate/hibernate-orm

if ( !propertyType.isEqual( current[naturalIdentifierPropertyIndex], snapshot[i] ) ) {
  throw new HibernateException(
      String.format(

代码示例来源:origin: hibernate/hibernate-orm

.isEqual( requestedId, entityEntry.getId(), factory );

相关文章