java - Hibernate 不创建我的表

标签 java hibernate spring jakarta-ee

我在使用 Spring 和 Hibernate 时遇到了一个奇怪的问题。我开始在 hibernate.cfg.xml 中使用 Hibernate:

<property name="hbm2ddl.auto">create</property>

它运行良好,Hibernate 成功地在数据库中创建了所需的表。 现在我正在使用 Spring,我在 applicationContext.xml 中用于 hibernate 的 bean 看起来像这样:

<bean id="mySessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="myDataSource" />
    <property name="mappingResources">
        <list>
            <value>domain/Entity.hbm.xml</value>
            <value>domain/Service.hbm.xml</value>
            <value>domain/User.hbm.xml</value>
            <value>domain/Arcos.hbm.xml</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.hbm2dll.auto">create</prop>
        </props>
    </property>
</bean>

我不得不在某些时候删除由 Hibernate 创建的表,但 Spring 没有创建它们。我尝试使用 create-drop 而不是 create (以防万一有人问)。自从我使用 Hibernate 以来,我的 DB Schema 发生了变化,并且我在我的代码中使用了很多 getBeans("..."); ,所以重用我的 Hibernate-only 版本只是为了创建表。我也可以手动创建表格,但使用这些框架有什么意义呢?

我确定我在某处做错了什么,但我找不到它。控制台提示没有名为“表的名称”的表,所以连接DB成功。

感谢您的宝贵时间:)

最佳答案

hibernate.hbm2dll.auto --> hibernate.hbm2ddl.auto

DLL = 动态链接库

DDL = 数据定义语言

关于java - Hibernate 不创建我的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8713026/

相关文章:

java - 如何修复被忽略的嵌入对象中的验证约束?

java - 如何使用 InputStream 和 Spring 发送带附件的电子邮件?

java - 当我尝试将 hibernate 与 wicket 一起使用时出错

java - 减少代码冗余的设计 - Java/WebServices

java - 处理警告 : [rawtypes] found raw type: JList in Netbeans (changing the object types to meet the new Java 7 standards)

java.lang.NumberFormatException : Expected an int but was 0. 6 在第 1 行第 8454 列

mysql - 如何使用两个表和 LEFT JOIN 将 SQL 查询转换为 HQL 查询

java - Servlet 和后端关系

java - Spring Batch - 作业实例已存在 : JobInstanceAlreadyCompleteException

java - 使用 Spring Jms 问题异步发送到队列