ฉันมีโปรแกรมฤดูใบไม้ผลิ Boot spring-boot-starter-data-jpa
กับการพึ่งพา คลาสเอนทิตีของฉันมีคำอธิบายประกอบคอลัมน์ที่มีชื่อคอลัมน์ ตัวอย่างเช่น:
@Column(name="TestName")
private String testName;
SQL ที่สร้างขึ้นโดยสร้างtest_name
เป็นชื่อคอลัมน์ หลังจากค้นหาวิธีแก้ปัญหาฉันพบว่าspring.jpa.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy
แก้ไขปัญหาได้แล้ว (ชื่อคอลัมน์นำมาจากคำอธิบายประกอบคอลัมน์)
อย่างไรก็ตามคำถามของฉันคือเหตุใดโดยไม่ตั้งชื่อ _strategy เป็นEJB3NamingStrategy
JPA จึงไม่สนใจคำอธิบายประกอบคอลัมน์ บางทีภาษาไฮเบอร์เนตอาจมีส่วนเกี่ยวข้องกับมัน? ฉันกำลังเชื่อมต่อกับ MS SQL 2014 Express และบันทึกของฉันประกอบด้วย:
Unknown Microsoft SQL Server major version [12] using SQL Server 2000 dialect
Using dialect: org.hibernate.dialect.SQLServerDialect
@Column(name="...")
คำอธิบายประกอบตัวอย่างเช่นเมื่อคุณใช้ประเภทการเข้าถึงอื่นนอกเหนือจากที่คาดไว้ แต่นั่นไม่ใช่กรณีนี้