मैंने कुछ समय पहले एक परियोजना पर इसी तरह की समस्या का अनुभव किया है। हालाँकि, जैसा कि मुझे जुड़नार के साथ इसे हल करने का कोई तरीका नहीं मिला (जैसा कि डेटाबेस ब्लॉब ऑब्जेक्ट को एक स्ट्रिंग के रूप में संग्रहीत करता है जैसा कि पेरे ने ऊपर बताया है), मैंने परीक्षण-केस-परिदृश्य में कम से कम इस समस्या को हल करने के लिए एक वर्कअराउंड बनाया। मैंने निम्नलिखित फ़ाइल /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());
}
}
}
}
पहली चीज जो मैं करता हूं वह है डेटाबेस को प्रारंभिक डेटा से भरना यदि डेटाबेस में पहले से कोई 'आइटम' संग्रहीत नहीं है। बस डेटाबेस में संग्रहीत है, जो "my_fixtures.yml" फ़ाइल से पढ़े जाते हैं। यहां प्रत्येक आइटम के लिए स्ट्रिंग फ़ील्ड अपडेट हो जाएगा जैसा कि ऊपर दिए गए उदाहरण में दिखाया गया है।
मुझे पता है कि यह ओपी में सवाल का बिल्कुल जवाब नहीं है, लेकिन यह इस मुद्दे के आसपास काम करने के लिए किसी तरह का विचार देता है ..
संपादित करें:ऊपर दिए गए उदाहरण में मुझे लगता है कि चित्र आपके अटैचमेंट फ़ोल्डर में मैन्युअल रूप से अपलोड किए गए हैं जैसा कि आपके application.conf में दिया गया है। , और यह कि प्रत्येक छवि का नाम इस प्रकार है:"item_