私はしばらく前にプロジェクトで同じ種類の問題を経験しました。ただし、フィクスチャでこれを解決する方法が見つからなかったため(データベースは、上記で説明したようにblobオブジェクトを文字列として格納するため)、少なくともテストケースシナリオでこの問題を解決するための回避策を作成しました。次のファイル/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());
}
}
}
}
最初に行うことは、データベースに「アイテム」がまだ保存されていない場合にデータベースに初期データを入力することです。
2番目に行うことは、再生されるすべての「アイテム」を反復処理することです。 「my_fixtures.yml」ファイルから読み取られるデータベースに保存されます。ここでは、各アイテムについて、上記の例に示すように文字列フィールドが更新されます。
これがOPの質問に対する正確な答えではないことは知っていますが、この問題を回避するための親切なアイデアが得られます。
編集:上記の例では、 application.conf に指定されているように、写真が添付ファイルフォルダーに手動でアップロードされていると想定しています。 、および各画像名は次のようになります:「item_