用于PostgreSQL数据库的MySQL方言
在我的Spring MVC应用程序中,我使用PostgreSQL DB 9.3和Hibernate作为JPA供应商。下面是我的application-dao.xml文件:用于PostgreSQL数据库的MySQL方言,mysql,spring,hibernate,postgresql,Mysql,Spring,Hibernate,Postgresql,在我的Spring MVC应用程序中,我使用PostgreSQL DB 9.3和Hibernate作为JPA供应商。下面是我的application-dao.xml文件: <bean id="propDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="org.postgres
<bean id="propDataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/mysql" />
<property name="username" value="abcd" />
<property name="password" value="abcd" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emf"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="propDataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
<property name="packagesToScan" value="com.trua.prol"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</prop>
<prop key="hibernate.max_fetch_depth">3</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">10</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
我错误地使用mysqldialent来提供hibernate.dialent,并意外地发现它工作正常。当我使用正确的方言postgresql方言时,它也起了作用
这是有意的吗?我可以在Postgre DBs中使用MySQL方言吗?SQL就是SQL。只要不使用任何特定的数据库功能,每种方言都可以使用。一旦你开始使用函数或特定的数据库选项,事情就开始分崩离析。MySQL使用一些非标准的东西,比如+表示字符串连接,或者`表示引用Postgres将拒绝的对象。如果您的查询没有使用这种非标准语法,那么您不会注意到其中的差异。