मेरे पास निर्भरता के साथ एक स्प्रिंग बूट एप्लिकेशन है spring-boot-starter-data-jpa
। मेरी इकाई कक्षा में एक स्तंभ नाम के साथ एक कॉलम एनोटेशन है। उदाहरण के लिए:
@Column(name="TestName")
private String testName;
इससे उत्पन्न SQL test_name
स्तंभ नाम के रूप में बनाया गया है। एक समाधान की तलाश के बाद मैंने पाया है कि spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
समस्या का समाधान (स्तंभ का नाम स्तंभ एनोटेशन से लिया गया है)।
फिर भी, मेरा सवाल यह है कि EJB3NamingStrategy
जेपीए के नामकरण के बिना कॉलम एनोटेशन की अनदेखी क्यों की जा रही है? शायद हाइबरनेट बोली का इससे कोई लेना-देना है? मैं एमएस एसक्यूएल 2014 एक्सप्रेस से जुड़ रहा हूं और मेरे लॉग में शामिल हैं:
Unknown Microsoft SQL Server major version [12] using SQL Server 2000 dialect
Using dialect: org.hibernate.dialect.SQLServerDialect
@Column(name="...")
एनोटेशन की उपेक्षा कर सकता है , उदाहरण के लिए जब आप अपेक्षित पहुंच प्रकार के अलावा अन्य का उपयोग करते हैं, लेकिन यहां ऐसा नहीं है।