我需要讓Hibernate從實體開始自動生成數據庫,但是我希望它們都是大寫的。在Hibernate 5中實現NamingStrategy(使自動生成的列名稱爲UPPERCASE)
這用於過去的工作,現在我已經搞砸了大小寫字母的列名稱。
我啓用了
.setProperty("hibernate.hbm2ddl.auto", "create")
來讓Hibernate自動生成數據庫,我創建了一個UppercaseNamingStrategy.java延長org.hibernate.cfg.ImprovedNamingStrategy。
根據https://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html_single/#configuration-namingstrategy
現在我應該
你可以通過調用 Configuration.setNamingStrategy()加入映射之前指定了不同的策略:
SessionFactory sf = new Configuration() .setNamingStrategy(ImprovedNamingStrategy.INSTANCE) .addFile("Item.hbm.xml") .addFile("Bid.hbm.xml") .buildSessionFactory();
org.hibernate.cfg .ImprovedNamingStrategy是一種內置策略,對於某些應用程序來說, 可能是一個有用的起點。
Configuration.setNamingStrategy()似乎在Hibernate 5.0.6中沒有更多。
我當然想要以編程方式來做(我沒有.xml配置文件,並且不需要它們)。
注:
使用
.setProperty( 「hibernate.ejb.naming_strategy」, 「my.project.hibernate.UppercaseNamingStrategy」)
不工作爲好,似乎一起被忽略...
嘗試覆蓋此https://docs.jboss.org/hibernate/orm/5.0/javadocs/org/hibernate/boot/model/naming/ImplicitNamingStrategyLegacyHbmImpl.html。 –
這是另一個解決方案http://stackoverflow.com/questions/32165694/spring-hibernate-5-naming-strategy-configuration –