Spring Boot. Разрабатываем веб-приложение с нуля. Загружаем фотографии в базу данных

preview_player
Показать описание
Это четвёртое видео в цикле роликов, которые посвящены моему бесплатному курсу по разработке веб приложения buysell с абсолютного нуля. В этой лекции мы добавляем возможность загружать фотографии к товарам.

- Мои соцсети:

- Поддержать канал: 5469 3100 1888 1702 (СБЕР)
Рекомендации по теме
Комментарии
Автор

Всем привет, еще раз для тех, кто столкнулся с проблемой загрузки картинок по причине того что фотографии слишком большого размера для поля bytes. При запуске проекта нам автоматически генерирует поле bytes типа tinyblolb (то есть хранения очень маленького размера данных). Для того чтобы изменить тип, допустим, на longblob - можно прописать @Column...:
@Lob
@Column(name = "bytes", columnDefinition = "longblob")
private byte[] bytes;
Надеюсь поможет.

mikhkail
Автор

Отлично! С большим интересом продолжаю с Вами писать этот код. Хорошее дополнение к моему основному курсу. Помогает лучше усвоить материал.

RenatoSilenzio
Автор

Ошбика в коде Артема: в классе ProductConroller -> createProduct -> file1 + file1 + file1 (вместо file1 + file2 + file3 )

TheEBPO
Автор

не забудьте файнал перед final private Imgrepository imgRep в ImgService классе
и в Application.properties добавить


nursultankasymov
Автор

Спасибо за уроки бро, очень полезные!

bO-sbel
Автор

Выполнил и этот урок, конечно сложный, но надеюсь дальше будет проще.

dealhubpro
Автор

Здравствуйте! Спасибо за урок, но, пожалуйста, бд покажите тоже, а то некоторые моменты не очень понятны. Например, то что как сохраняется байты.

AkzholSlamzhanov
Автор

Добрый день, на 24:22 - там разве не должно быть последней строкой - сохранить productFromDb с установленной previewId? а то выходит, что мы дважды сохраняем продукт, который к нам на вход пришел.

tiwkqts
Автор

Отличный урок! Спасибо большое! Подскажите пожалуйста, может я не там ищу.с прошлого урока в MySQL Workbench не сохранились товары в таблице, или так их можно найти?

egonysv
Автор

Спасибо за урок))) Продолжай Артем) Хорошо рассказываешь !!!! да плиз CSS можно прикрутить и т.д . Если за Docker шаришь покажи как плиз че туда заливать и запускать....

alexandernehaev
Автор

для postgresql нужно в модели product для картинок указывать fetch = FetchType.EAGER, - LAZY высывает ошибку транзакций

bycwcyu
Автор

У кого была ошибка ОШИБКА: отношение "images_seq" не существует? скажите как решили?

exes
Автор

Есть урок с сохранением в облако и хранением в БД адресов? А то так никто не делает, зачем это учить?

wqgcrjw
Автор

У кого выскакивает ошибка 500, попробуйте в классе Image для bytes использовать не @Lob, а @Column(columnDefinition = "LONGBLOB")

jikkbxu
Автор

Огромное спасибо за интересный и информативный урок!
Но у меня один вопрос. Может кто-нибудь сталкивался с проблемой, что картинки в бд загружаются нормально, но не отображаются потом в браузере?

qlsvuyg
Автор

В классе Product, список картин пришлось изменить fetchType на eager, т.к. при загрузке больших картин выскакивает ошибка:
"Large Objects may not be used in auto-commit mode".

Я прочитал несколько статей и как там написано:
По умолчанию @LOB загружаются лениво, и загрузка должна происходить в той же транзакции, что и загрузка родительских объектов.

Надеюсь кому-то помог.

---ucky
Автор

Большие объекты не могут использоваться в режиме авто-подтверждения (auto-commit).
что делать с этим? У меня PostrgeSQL

eziucxk
Автор

Добрый день.
А мы можем как то в контроллер принимать сразу список MultipartFile, а не по 3 файла? И обрабатывать потом через стрим в методе saveProduct?
Просто сейчас больно смотреть на простыню в методе(
Еще хотел спросить почему не используете аннотацию билдер от ломбок что бы красивее оформить код в методе toImageEntity?

bglkrqx
Автор

У меня не отображаются картинки, когда заходишь посмотреть товар, как можно пофиксить? (показывает что картинка есть, но она не показывается визуально)

weareneverdie
Автор

У кого не отображаются картинки на сайте(или маленький ярлычок), то проверьте тип поля bytes в вашей базе данных, и если он tinyblob то измените на blob

showex