src/main/java/com/googlecode/objectify/impl/EntityMetadata.java
private EntityValue makeLoadEntityValue(final BaseEntity<?> ent) {
		if (ent instanceof FullEntity<?>) {
			return EntityValue.of((FullEntity<?>)ent);
		} else {
			// Sadly there's no more graceful way of doing this
			final Builder<?> builder = FullEntity.newBuilder(ent.getKey());
			for (final String name : ent.getNames()) {
				final Value<?> value = ent.getValue(name);
				builder.set(name, value);
			}

			return EntityValue.of(builder.build());
		}
	}
private EntityValue makeLoadEntityValue(final BaseEntity<?> ent) {
		if (ent instanceof FullEntity<?>) {
			return EntityValue.of((FullEntity<?>)ent);
		} else {
			// Sadly there's no more graceful way of doing this
			final Builder<?> builder = FullEntity.newBuilder(ent.getKey());
			for (final String name : ent.getNames()) {
				final Value<?> value = ent.getValue(name);
				builder.set(name, value);
			}

			return EntityValue.of(builder.build());
		}
	}
The problem is ProjectionEntity; there's no way to create an EntityValue with a ProjectionEntity
so we can't use the standard translation system for {@code Value<Entity>}. Instead of making the
translation API really complicated, just convert it to a FullEntity.