mysql - HSQLDialect 到 MySQL5InnoDBDialect、Hibernate

标签 mysql hibernate spring tomcat innodb

我在一些项目中一直使用 HSQLDialect 作为我的数据库(MySQL,大多数表为 InnoDB)的方言,并且 Hibernate 从未遇到过任何问题。

我在使用 Spring 3.1.0 和 Hibernate 3.6.9 的项目中使用 setMaxResults() 时遇到了 MySQLSyntaxErrorException ,我仍然想知道它是从哪里来的。

我的 XML 配置 servlet:

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="org.hsqldb.jdbcDriver" />
    <property name="url" value="jdbc:mysql://localhost:3306/product" />
    <property name="username" value="root" />
    <property name="password" value="***************" />
</bean>

<bean id="mySessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="myDataSource" />
        <property name="mappingResources">
            <list>
                <value>com/social/admin/beans/DevDebugLogs.hbm.xml</value>
                <value>com/social/admin/beans/Users.hbm.xml</value>
                ...
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect"> org.hibernate.dialect.HSQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">create</prop>
            </props>
        </property>
    </bean>

    <bean name="/logs.html" class="com.social.admin.controllers.DebugManagerAdmin"> 
        <property name="sessionFactory" ref="mySessionFactory" /> 
    </bean> 

我尝试从 HSQLDialect 切换到 MySQL5InnoDBDialect,它破坏了我数据库的很大一部分,删除条目,删除表......!!!!!!!!! X)

有人可以帮我吗?

最佳答案

为避免删除表和数据,请确保将配置中的 Hibernate 切换为 update : <prop key="hibernate.hbm2ddl.auto">update</prop>

这将帮助您摆脱数据消失的问题。

切换到 MySQL5InnoDBDialect不应该造成任何重大问题。我已经在我的每个项目中使用它很长时间了。唯一可能发生的事情是,某些查询在不同的方言下运行可能不完全相同,但您将能够在运行时或测试期间检查它。

关于mysql - HSQLDialect 到 MySQL5InnoDBDialect、Hibernate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227650/

相关文章:

java - Spring-JPA 和 Spring-Data-JPA 之间的区别

spring - 如何使用 Spring Rest 和 PagingAndSortingRepository 返回 400 响应

php - [PHP][MYSQL] 内存不足,无法打开此页面

php - 无法连接到 'mysql.hostinger.in' (111 "Connection refused") 上的 MySQL 服务器

java - 具有主查询 ID 的 Hibernate 限制子查询

java - 涉及多个关联的 HQL JOIN

java - Spring异常消息?它是什么?

java - 使用 Spring RestTemplate for Android 发出经过身份验证的 POST 请求

MySql 工作台查询历史(上次执行的查询/查询),即创建/更改表、选择、插入更新查询

php - 通过第一个下拉菜单中的用户输入更改第二个下拉菜单中的选项