@Override
    public FK_ENTITY apply(ENTITY entity) {
        @SuppressWarnings("unchecked")
        final V value = (V) getSourceField().getter().apply(entity);
        if (value == null) {
            return null;
        } else {
            return stream()
                .filter(getTargetField().equal(value))
                .findAny()
                .orElseThrow(() -> new SpeedmentFieldException(
                    "Error! Could not find any entities in table '" + 
                    getTableIdentifier() + 
                    "' with '" + getTargetField().identifier().getColumnId() +
                    "' = '" + value + "'."
                ));
        }
    }
@param <ENTITY>     the source entity
@param <FK_ENTITY>  the target entity
@param <V>          the column type
@param <SOURCE>     the source field type

@author  Emil Forslund
@since   3.0.0
runtime-parent/runtime-field/src/main/java/com/speedment/runtime/field/internal/method/FindFromReference.java