Eu experimentei o mesmo tipo de problema há algum tempo em um projeto. No entanto, como não consegui encontrar uma maneira de resolver isso com os fixtures (já que o banco de dados armazena o objeto blob como uma string como Pere explicou acima), criei uma solução alternativa para pelo menos resolver esse problema em um cenário de caso de teste. Eu criei o seguinte arquivo /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());
}
}
}
}
A primeira coisa que faço é preencher o banco de dados com dados iniciais se não houver nenhum 'Item' já armazenado no banco de dados.
A segunda coisa é iterar sobre todos os 'Item' que tocam! apenas armazenados no banco de dados, que são lidos do arquivo "my_fixtures.yml". Aqui, para cada item, o campo de string será atualizado conforme mostrado no exemplo acima.
Eu sei que essa não é exatamente a resposta para a pergunta no OP, mas dá uma boa ideia para contornar esse problema.
EDIT:No exemplo dado acima, suponho que as imagens sejam enviadas manualmente para sua pasta de anexos, conforme fornecido em seu application.conf , e que cada nome de imagem é como:"item_