我有一個奇怪的問題,使用Spring和Hibernate。我開始使用Hibernate在hibernate.cfg.xml中使用此:休眠不會創建我的表
<property name="hbm2ddl.auto">create</property>
它工作得很好,和Hibernate成功創建數據庫所需的表。 現在我使用Spring和我的豆用於applicationContext.xml中休眠看起來是這樣的:
<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創建的表在某些時候,但春節不創建它們。我試用create-drop
而不是create
(以防萬一有人問)。自從我使用Hibernate以來,我的數據庫模式發生了變化,我在我的代碼中使用了很多getBeans("...");
,所以有點讓我費了很大力氣重新使用僅用於Hibernate的版本來創建表。我也可以手動創建表格,但使用這些框架的意義何在?
我確定我在某處做錯了什麼,但是我找不到它。控制檯提示錯誤,表示沒有名爲「表」的表,因此它已成功連接到數據庫。
感謝您的時間:)
您是否嘗試啓用show-sql \t true - 它可以幫助您。 –
2012-01-03 13:35:04
恕我直言,使用ddl可以在重構代碼時給出意想不到的結果...考慮通過另一種機制(如Liquibase)管理您的ddl。 – aweigold 2012-01-06 20:08:12
我會看看這個,謝謝你的建議! – Max 2012-01-11 11:30:29