Отображение байта [], который может расти до 400 КБ на MySql - PullRequest
2 голосов
/ 30 октября 2010

У меня есть следующее:

@Entity
public class ExamplePhoto {

...

@Column(nullable= false)
private byte[] photo;

...
}

Я использую Hibernate и базу данных MySql.Я попытался поместить mediumblob, но получил сообщение "tinyblob Ожидаемая ошибка".Учитывая тот факт, что фотография может иметь размер до 400 КБ, крошечный шарик не будет делать эту работу.Как я могу отобразить это поле?Это самый элегантный способ обработки изображений?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 30 октября 2010

Вы пытались добавить аннотацию @Lob в поле фотографии?

@Column(nullable=false)
@Lob
private byte[] photo;

И чтобы ответить на вашу вторую часть, элегантно ли обрабатывать изображения таким образом: Зависит от того, как часто вы их обслуживаете. Доступ к базе данных обычно дороже, чем простой доступ к файлам.

0 голосов
/ 31 октября 2010

Учитывая тот факт, что фотография может иметь размер до 400 КБ, крошечный шарик не справится с этой задачей.Как мне сопоставить это поле?

IIRC, Hibernate также использует атрибут length аннотации Column при сопоставлении свойства как Lob.Попробуйте следующее:

@Lob @Column(nullable= false, length=400000)
private byte[] photo;

Является ли это наиболее элегантным способом обработки изображений?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...