protected void mergeSystemState(Entity srcEntity, Entity dstEntity) { if (dstEntity instanceof BaseGenericIdEntity) { BaseEntityInternalAccess.copySystemState((BaseGenericIdEntity) srcEntity, (BaseGenericIdEntity) dstEntity); if (srcEntity instanceof FetchGroupTracker && dstEntity instanceof FetchGroupTracker) { FetchGroup srcFetchGroup = ((FetchGroupTracker) srcEntity)._persistence_getFetchGroup(); FetchGroup dstFetchGroup = ((FetchGroupTracker) dstEntity)._persistence_getFetchGroup(); if (srcFetchGroup == null || dstFetchGroup == null) { ((FetchGroupTracker) dstEntity)._persistence_setFetchGroup(null); } else { ((FetchGroupTracker) dstEntity)._persistence_setFetchGroup(FetchGroupUtils.mergeFetchGroups(srcFetchGroup, dstFetchGroup)); } } } else if (dstEntity instanceof AbstractNotPersistentEntity) { BaseEntityInternalAccess.setNew((AbstractNotPersistentEntity) dstEntity, BaseEntityInternalAccess.isNew((AbstractNotPersistentEntity) srcEntity)); } }
@SuppressWarnings("unchecked") protected void copySystemState(Entity srcEntity, Entity dstEntity) { if (dstEntity instanceof BaseGenericIdEntity) { ((BaseGenericIdEntity) dstEntity).setId(srcEntity.getId()); BaseEntityInternalAccess.copySystemState((BaseGenericIdEntity) srcEntity, (BaseGenericIdEntity) dstEntity); if (srcEntity instanceof FetchGroupTracker && dstEntity instanceof FetchGroupTracker) { FetchGroup srcFetchGroup = ((FetchGroupTracker) srcEntity)._persistence_getFetchGroup(); ((FetchGroupTracker) dstEntity)._persistence_setFetchGroup(srcFetchGroup); } } else if (dstEntity instanceof AbstractNotPersistentEntity) { ((AbstractNotPersistentEntity) dstEntity).setId((UUID) srcEntity.getId()); BaseEntityInternalAccess.setNew((AbstractNotPersistentEntity) dstEntity, BaseEntityInternalAccess.isNew((AbstractNotPersistentEntity) srcEntity)); } if (dstEntity instanceof Versioned) { ((Versioned) dstEntity).setVersion(((Versioned) srcEntity).getVersion()); } }