sql >> Databáze >  >> RDS >> Mysql

Přehrajte soubor obrázku BLOB rámce pro testovací objekt Yaml

Před chvílí jsem na jednom projektu zažil stejný problém. Protože jsem však nemohl najít způsob, jak to vyřešit pomocí svítidel (protože databáze ukládá objekt blob jako řetězec, jak vysvětlil Pere výše), vytvořil jsem řešení, jak tento problém vyřešit alespoň v testovacím případě. Vytvořil jsem následující soubor /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());
            }
        }
    }
}

První věc, kterou udělám, je naplnění databáze počátečními daty, pokud v databázi již nejsou uloženy žádné 'Itemy'.
Druhá věc je iterace všech 'Item', které hrají! právě uložené v databázi, které jsou načteny ze souboru "my_fixtures.yml". Zde se pro každou položku pole řetězce aktualizuje, jak je znázorněno v příkladu výše.

Vím, že to není přesně odpověď na otázku v OP, ale dává to určitý nápad, jak tento problém vyřešit..

UPRAVIT:Ve výše uvedeném příkladu předpokládám, že obrázky jsou nahrány ručně do vaší složky příloh, jak je uvedeno v application.conf a že název každého obrázku je:"item_" s příponou ".png"



  1. INSERT a SELECT GROUP BY:více cílových sloupců než výrazů chyba

  2. Kurzy databáze SQL Server ( MSSQL DBA ) pro začínající správce databází

  3. OBJEDNAT PODLE seznamu hodnot IN

  4. vyberte ze dvou tabulek, kde propojený sloupec může mít hodnotu null