TL; DR
あなたapplication.yml
ファイルに次の行を追加します
spring:
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
またはあなたのapplication.properties
:
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
詳細な回答
春ブーツとして1.4 release notes状態:
SpringNamingStrategy
は、Hibernate 5.1が古いNamingStrategy
インターフェイスのために サポートを削除したために使用されなくなりました。新しい SpringPhysicalNamingStrategy
が自動設定され、これは とHibernateのデフォルトのImplicitNamingStrategy
の組み合わせで使用されます。この は、Springブート1.3 のデフォルト値に非常に近くなければなりませんが、アップグレード時にデータベーススキーマが正しく であることを確認する必要があります。
この新しいPhysicalNamingStrategy
は、Springで推奨される命名規則に従います。とにかく、物理的な名前付けを完全に制御したい場合は、org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
を使用する方がよいでしょう。あなたのapplication.yml
に以下を加えることにより、そのネーミング戦略に切り替えることができます
spring:
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
注釈は無視され、テーブルは、その後hissyのフィット感を持つように春社会を起こしuser_connection
として作成されます。
private Identifier apply(Identifier name, JdbcEnvironment jdbcEnvironment) {
if (name == null) {
return null;
}
StringBuilder builder = new StringBuilder(name.getText().replace('.', '_'));
for (int i = 1; i < builder.length() - 1; i++) {
if (isUnderscoreRequired(builder.charAt(i - 1), builder.charAt(i),
builder.charAt(i + 1))) {
builder.insert(i++, '_');
}
}
return getIdentifier(builder.toString(), name.isQuoted(), jdbcEnvironment);
}
private boolean isUnderscoreRequired(char before, char current, char after) {
return Character.isLowerCase(before) && Character.isUpperCase(current)
&& Character.isLowerCase(after);
}
それは基本的にアンダースコアを持つ任意の.
とケースの変更(isUnderscoreRequired
方法を見てみましょう)に置き換えます。
SpringPhysicalNamingStrategy
のapply
方法は、この動作を理解するための鍵です。
どのようにあなたがあなたの自動車のDDLの作成を設定しますこれはあなたのケースでは最後の手段ですが? –
は、あなたがsession.activityに追加するapplication.propertiesとproertiesを追加すると良いでしょう –