2015-03-24 9 views
8

मैं स्प्रिंग डेटा जेपीए 1.8 नई जेडीके तिथि कन्वर्टर्स का उपयोग करने की कोशिश कर रहा हूं।नया वसंत डेटा JDK8 Jsr310JpaConverters स्वचालित रूप से काम नहीं कर रहे हैं?

मेरी स्प्रिंग बूट आवेदन में मैं एक config वर्ग की तरह जोड़ दिया है:

@Configuration 
@ComponentScan(basePackageClasses = LocalContainerEntityManagerFactoryBean.class) 
@EnableJpaAuditing 
public class DataConfig { 
} 

यह org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters कैसे पता चलता है कि कैसे ऑटो रूपांतरण लागू है। मैंने org.springframework.data.jpa.domain.support और org.springframework.data.jpa.convert.threeten जैसे प्रत्यक्ष पैकेज संदर्भों का भी उपयोग किया।

समस्या यह है कि jdk 8 दिनांक रूपांतरण नहीं होता जिसके परिणामस्वरुप SQL अपवाद होते हैं।

हालांकि, जब मैं की तरह मेरे डोमेन वर्ग में करने के लिए मैन्युअल रूप से कनवर्टर लागू होते हैं:

@Convert(converter = Jsr310JpaConverters.LocalDateConverter.class) 
private LocalDate birthdate; 

फिर रूपांतरण काम करता है।

उत्तर

12

स्प्रिंग बूट का उपयोग करते हुए बस की तरह

नीचे
@EntityScan(basePackageClasses = { Application.class, Jsr310JpaConverters.class }) 
@SpringBootApplication 
class Application { … } 

Jsr310JpaConverters जोड़ सकते हैं या संकुल को org.springframework.data.jpa.convert.threeten जोड़ने स्कैन करने के लिए कर सकते हैं।

+0

हां '@ एंटीटीस्कैन (बेसपैकेज क्लासेस = {एप्लिकेशन.क्लास, जेएसआर 310 जेपीए कन्वर्टर्स.क्लास}) 'चाल चल रही थी। मैंने @ComponentScan का उपयोग किया जो सही नहीं है। –

+0

उल्लेख करना अच्छा है कि आपको अपने बूट के एप्लिकेशन को स्पष्ट रूप से शामिल करना होगा। अन्यथा यह काम नहीं करेगा। –

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