Jag har upplevt samma typ av problem för ett tag sedan i ett projekt. Men eftersom jag inte kunde hitta ett sätt att lösa detta med fixturerna (eftersom databasen lagrar blob-objektet som en sträng som Pere förklarade ovan), skapade jag en lösning för att åtminstone lösa detta problem i ett testfallsscenario. Jag skapade följande fil /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());
}
}
}
}
Det första jag gör är att fylla databasen med initiala data om det inte redan finns några 'Artikel' lagrade i databasen.
Den andra saken är att iterera över alla 'Artiklar' som spelas! precis lagrade i databasen, som läses från filen "my_fixtures.yml". Här för varje objekt kommer strängfältet att uppdateras som visas i exemplet ovan.
Jag vet att detta inte exakt är svaret på frågan i OP, men det ger en vänlig idé att komma runt det här problemet.
EDIT:I exemplet ovan antar jag att bilderna laddas upp manuellt till din bifogade mapp enligt din application.conf , och att varje bildnamn är som:"item_