2016-05-18 11 views
0

Ich migriere meine windowsbasierte Spring - Hibernate Anwendung nach Amazon AWS. Ich bekomme Probleme mit der Datenbank, da die Tabellennamen in Amazon RDS mit Großbuchstaben beginnen, wenn Hibernate sie erstellt.Wie mache ich AWS RDS MySql 5.6 case-insensitive?

zB: userlogin_permissions in Windows lokalen Mysql ändert sich zu Userlogin_permissions.

Aufgrund dieses obigen Fehlers kann mein Server keine Verbindung zur Tabelle herstellen und funktioniert nicht.

Ich versuchte

<prop key="org.hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>

verwenden, aber ist nicht zu helfen.

Das Folgende ist meine XML-Struktur:

<beans profile="awsSql"> 
     <bean class="org.apache.tomcat.jdbc.pool.DataSource" id="dataSource"> 
      <property name="url" value="jdbc:mysql://-----------"/> 
      <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
      <property name="username" value="@@@@@@@"/> 
      <property name="password" value="##########"/> 
     </bean> 
     <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
      <property name="persistenceUnitName" value="***-jpa"/> 
      <property name="dataSource" ref="dataSource"/> 
      <property name="jpaDialect"> 
       <bean class="org.springframework.orm.jpa.vendor.HibernateJpaDialect"/> 
      </property> 
      <property name="jpaVendorAdapter"> 
       <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
        <property name="showSql" value="false"/> 
        <property name="generateDdl" value="true"/> 
        <property name="databasePlatform" value="org.hibernate.dialect.MySQL5Dialect"/> 
       </bean> 
      </property> 
      <property name="jpaProperties"> 
       <props> 
        <prop key="org.hibernate.envers.auditTablePrefix"></prop> 
        <prop key="org.hibernate.envers.auditTableSuffix">_AUD</prop> 
        <prop key="org.hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop> 
        <!--<prop key="org.hibernate.ejb.naming_strategy">org.hibernate.cfg.DefaultNamingStrategy</prop>--> 

        <!--<prop key="hibernate.cache.provider_class">org.hibernate.cache.SingletonEhCacheProvider</prop>--> 
        <!--<prop key="hibernate.cache.provider_configuration">/META-INF/cache/ehcache.xml</prop>--> 
        <prop key="hibernate.cache.use_second_level_cache">false</prop> 
        <prop key="hibernate.cache.use_query_cache">false</prop> 
        <!--<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>--> 
        <prop key="hibernate.generate_statistics">false</prop> 
       </props> 
      </property> 
     </bean> 

Gibt es eine Art und Weise, kann ich entweder RDS Groß- und Kleinschreibung MYSQL verwenden machen, oder Hibernate konsistent in allen OS machen.

Ich habe die anderen verwandten Fragen hier schon durchgegangen, konnte aber mein Problem nicht lösen.

+0

Ich habe versucht, den Parameter auf 1 in aws-Konsole ändern, die den porblem nicht gelöst haben. Ich werde auch die Cli-Befehle ausprobieren – hybrid

Antwort

1

Sie suchen die lower_case_table_names Systemvariable und den Wert auf 1.

How to change MySQL table names in Linux server to be case insensitive?

Sie werden in RDS eine neue Parametergruppe erstellen müssen sich ändern und es dann zu einer MySQL-Instanz assoziieren Dies wird höchstwahrscheinlich einen Neustart erfordern. Um die Anweisungen zu sehen, um es über die Befehlszeile zu tun, die unten gefunden werden kann.

http://www.kulawik.de/blog/2011/02/lower_case_table_names/

Verwandte Themen