Ik heb een tijdje geleden hetzelfde probleem ondervonden bij een project. Omdat ik echter geen manier kon vinden om dit met de fixtures op te lossen (omdat de database het blob-object opslaat als een string zoals Pere hierboven heeft uitgelegd), heb ik een tijdelijke oplossing gemaakt om dit probleem op zijn minst in een testscenario op te lossen. Ik heb het volgende bestand /app/job/Bootstrap.java gemaakt:
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());
}
}
}
}
Het eerste wat ik doe is de database vullen met initiële gegevens als er nog geen 'Item' in de database is opgeslagen.
Het tweede is het herhalen van alle 'Item' die worden afgespeeld! net opgeslagen in de database, die worden gelezen uit het bestand "my_fixtures.yml". Hier wordt voor elk item het tekenreeksveld bijgewerkt zoals in het bovenstaande voorbeeld.
Ik weet dat dit niet precies het antwoord op de vraag in de OP is, maar het geeft een idee om dit probleem te omzeilen.
BEWERK:In het bovenstaande voorbeeld ga ik ervan uit dat de foto's handmatig worden geüpload naar uw bijlagemap zoals aangegeven in uw application.conf , en dat elke afbeeldingsnaam is als:"item_