Преди време се сблъсках с подобен проблем по един проект. Въпреки това, тъй като не можах да намеря начин да разреша това с приспособленията (тъй като базата данни съхранява 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'.
Второто нещо е повторение на всички 'Item', които се играят! току що се съхраняват в базата данни, които се четат от файла "my_fixtures.yml". Тук за всеки елемент полето за низ ще се актуализира, както е показано в примера по-горе.
Знам, че това не е точно отговорът на въпроса в ОП, но дава някаква добра идея за заобикаляне на този проблем..
РЕДАКТИРАНЕ:В дадения по-горе пример предполагам, че снимките се качват ръчно във вашата папка за прикачени файлове, както е дадено във вашия application.conf , и че всяко име на изображение е като:"item_