Я недавно столкнулся с такой же проблемой в проекте.Однако, так как я не смог найти способ решить эту проблему с помощью приборов (поскольку база данных хранит объект blob в виде строки, как объяснил Pere выше), я создал обходной путь, чтобы хотя бы решить эту проблему в тестовом сценарии.Я создал следующий файл /app/job/Bootstrap.java:
import play.test.*;
import play.jobs.*;
import play.db.DB;
import models.*;
import java.util.List;
@OnApplicationStart
public class Bootstrap extends Job {
public void doJob() {
// Load default data if the database is empty
if(Item.count() == 0) {
Fixtures.loadModels("my_fixtures.yml");
List<Item> allItems = Item.findAll();
for (Item a: allItems){
DB.execute("UPDATE `Item` SET image='item_" + a.name.toLowerCase() + ".png|image/png' WHERE id=" + a.getId());
}
}
}
}
Первое, что я делаю, - это заполнение базы данных начальными данными, если в базе данных уже нет «Item».
Второе - перебирать все «Предметы», которые играют!просто хранится в базе данных, которая читается из файла "my_fixtures.yml".Здесь для каждого элемента будет обновляться строковое поле, как показано в примере выше.
Я знаю, что это не совсем ответ на вопрос в OP, но он дает некоторую идею обойти эту проблему ..
РЕДАКТИРОВАТЬ: В приведенном выше примере я предполагаю, что изображения загружаются вручную в папку вложений, как указано в application.conf , и что каждое имя изображения имеет вид:"вещь_"с расширением" .png "