2011-03-24 13 views
8

मेरे पास कई यूनिट परीक्षण हैं, जो स्मृति में अपाचे डर्बी का उपयोग करते हैं। मेरे कनेक्शन यूआरएल है: jdbc:derby:memory:srf.derby;create=trueस्मृति में अपाचे डर्बी का उपयोग करते समय चेतावनी

मुझे पता चला कि हर बार, जब एक विधि @Transactional के रूप में चिह्नित खत्म, मैं एक डर्बी चेतावनी

12:53:28:5328 [org.hibernate.util.JDBCExceptionReporter] [main] WARN - SQL Warning: 10000, SQLState: 01J01 
12:53:28:5328 [org.hibernate.util.JDBCExceptionReporter] [main] WARN - Database 'memory:srf.derby' not created, connection made to existing database instead. 

यह क्यों है प्राप्त? मैं क्या गलत कर रहा हूँ?

धन्यवाद

+0

क्या यह वसंत का @ ट्रान्सैक्शनल है? – TheConstructor

उत्तर

8

आप कुछ भी गलत नहीं कर रहे हैं। आप प्रत्येक बार 'बनाना = true' पास कर रहे हैं, लेकिन डेटाबेस केवल पहली बार बनाया गया है जब आपका प्रोग्राम इसे एक्सेस करता है। चूंकि यह स्मृति में है, तब तक डेटाबेस तब तक लटकता है जब तक कि आपका प्रोग्राम निकल न जाए, जिस बिंदु पर यह गायब हो जाता है।

आप केवल अपने परीक्षण सूट में पहले परीक्षण पर 'बनाना = सत्य' पास करके चेतावनी से बच सकते हैं, और उसके बाद के परीक्षणों को उस मान को पारित करने की आवश्यकता नहीं है।

या, आप चेतावनी के बारे में चिंता नहीं कर सकते हैं।

+0

मुझे लगता है कि समस्या डेटाबेस निर्माण नहीं है। एक ही परीक्षण के दौरान, हर बार जब मैं एक लेनदेन विधि निष्पादित करता हूं तो यह चेतावनी मुद्रित होती है। मैंने एक फ़ाइल आधारित एम्बेडेड डीबी पर स्विच किया है, लेकिन अभी भी वही चेतावनी है –

+3

सटीक होने के लिए, प्रत्येक बार जब आप एक डर्बी डेटाबेस से कनेक्ट होते हैं जो पहले से मौजूद है, तो "URL = true" युक्त कनेक्शन URL का उपयोग करके, आपको मिलेगा चेतावनी। ऐसा इसलिए नहीं है क्योंकि यह स्मृति में है, ऐसा इसलिए है क्योंकि यह पहले से मौजूद है और आप इसे बनाने के लिए डर्बी को बता रहे हैं। –

संबंधित मुद्दे