Saya telah mengalami masalah yang sama beberapa waktu lalu di sebuah proyek. Namun karena saya tidak dapat menemukan cara untuk menyelesaikan ini dengan perlengkapan (karena database menyimpan objek gumpalan sebagai string seperti yang dijelaskan Pere di atas), saya membuat solusi untuk setidaknya menyelesaikan masalah ini dalam skenario kasus uji. Saya membuat file berikut /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());
}
}
}
}
Hal pertama yang saya lakukan adalah mengisi database dengan data awal jika tidak ada 'Item' yang sudah tersimpan di database.
Hal kedua adalah mengulangi semua 'Item' yang diputar! baru saja disimpan dalam database, yang dibaca dari file "my_fixtures.yml". Di sini untuk setiap item, bidang string akan diperbarui seperti yang ditunjukkan pada contoh di atas.
Saya tahu ini bukan jawaban yang tepat untuk pertanyaan di OP, tetapi ini memberikan beberapa ide bagus untuk mengatasi masalah ini..
EDIT:Dalam contoh yang diberikan di atas, saya berasumsi bahwa gambar diunggah secara manual ke folder lampiran Anda seperti yang diberikan di application.conf Anda , dan setiap nama gambar seperti:"item_