Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Я не знаю, решит ли это проблему, но я думаю, что вы можете упростить ваш View примерно так (менее бесполезное выражение select):
SELECT e.entity_id AS id,
v1.value AS name,
e.sku as sku,
d1.value AS version
FROM mguu_catalog_product_entity e
LEFT JOIN mguu_catalog_product_entity_varchar v1 ON (e.entity_id = v1.entity_id)
LEFT JOIN mguu_catalog_product_entity_varchar d1 ON (e.entity_id = d1.entity_id)
LEFT JOIN mguu_eav_attribute AS mea ON (v1.attribute_id = mea.attribute_id)
LEFT JOIN mguu_eav_entity_type AS meet ON (meet.entity_type_code = 'catalog_product')
WHERE v1.store_id = 0
AND mea.attribute_code = 'name'
AND mea.entity_type_id = meet.entity_type_id
AND d1.attribute_id = 171;
В документации MySql:
ОБНОВЛЕНИЕ: таблица или таблицы, которые должны быть обновлены в операторе UPDATE, могут быть ссылками просмотра, которые объединены. Если представление является представлением объединения, по крайней мере один компонент представления должен быть обновляемым (это отличается от INSERT).
В операторе UPDATE для нескольких таблиц обновленные ссылки на таблицы в операторе должны быть базовыми таблицами или обновляемыми ссылками на представления. Необновленные ссылки на таблицы могут быть материализованными представлениями или производными таблицами.
https://dev.mysql.com/doc/refman/8.0/en/view-updatability.html