Piszę aplikację przy użyciu bazy danych PostgreSQL oraz wiosennych i hibernacyjnych frameworków.wiosna - hibernacja 5 konfiguracja strategii nazewnictwa
Uaktualniłem framework sprężynowy z wersji 4.1.5.RELEASE do wersji 4.2.0.RELEASE i zaktualizowałem platformę hibernacji z wersji 4.3.7.Final do wersji 5.0.0.Final.
Po aktualizacji mam problemy z NamingStrategy. W bazie danych Postgresql nazwy kolumn tabeli są pisane małymi literami, podkreślone, w warstwie aplikacji właściwości fasoli są w wielbidach.
ten pracuje plik konfiguracyjny wiosna dla starszej wersji:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
<context:component-scan base-package="fms" />
<bean id="microFmsDataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="***" />
<property name="username" value="***" />
<property name="password" value="***" />
<property name="testOnBorrow" value="true" />
<property name="testOnReturn" value="true" />
<property name="testWhileIdle" value="true" />
<property name="validationQuery" value="select 1" />
<property name="initialSize" value="5" />
<property name="minIdle" value="10" />
<property name="maxIdle" value="100" />
<property name="maxActive" value="100" />
<property name="removeAbandoned" value="true" />
</bean>
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="microFmsDataSource"/>
<property name="packagesToScan">
<list>
<value>fms</value>
</list>
</property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="jpaPropertyMap">
<map>
<entry key="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" />
<entry key="hibernate.hbm2ddl.auto" value="validate" />
<entry key="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<entry key="hibernate.show_sql" value="true" />
<entry key="hibernate.format_sql" value="true" />
<entry key="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy" />
</map>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
</beans>
Po uaktualnieniu Zmieniłem konfigurację NamingStrategy:
<entry key="hibernate.ejb.naming_strategy" value="org.hibernate.cfg.ImprovedNamingStrategy" />
tak:
<entry key="hibernate.implicit_naming_strategy" value="***" />
i próbował wszystkich wariantów opcje wymienione w hibernacji javadoc: https://docs.jboss.org/hibernate/orm/5.0/javadocs/org/hibernate/cfg/AvailableSettings.html#IMPLICIT_NAMING_STRATEGY
ale bez powodzenia.
Czy możesz mi powiedzieć, co jest alternatywą ImprovedNamingStrategy w Hibernate 5 i podać działający przykład konfiguracji?
użyłem hibernate.implicit_naming_strategy legacy-WZP i to działało dla mnie. Możesz spróbować ? –
Sharadr
Prawdopodobny duplikat [ImprovedNamingStrategy już nie działa w Hibernate 5] (http://stackoverflow.com/questions/32437202/improvednamstrategy-no-longer-working-in-hibernate-5) – Rich