1
我試圖用Hibernate在MS SQL中插入一個對象,如果它不存在於數據庫中的話。 我打電話查找查詢方法吧返回空列表但真正在表中有這個對象!因此,當我調用insert方法時,hibernate想要插入對象,因爲它認爲表是空的,所以它拋出違反UNIQUE KEY約束條件! 它適用於Oracle沒有任何問題。 這是否可能是由我的許可或模式或目錄引起的?Hibernate違反UNIQUE KEY約束條件
<property name="schemaUpdate" value="${schemaUpdate}"/>
<property name="hibernateProperties">
<props>
<!--<prop key="hibernate.default_schema">${database.schema}</prop>-->
<prop key="hibernate.default_schema">${database.schema}</prop>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
<prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
<prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>
<prop key="hibernate.query.substitutions">true 'Y', false 'N'</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.max_fetch_depth">3</prop>
<prop key="hibernate.use_outer_join">true</prop>
,並
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
hibernate.show_sql=true
#true: if the database is needed to be created otherwise false
schemaUpdate=false
hibernate.hbm2ddl.auto=update
base.packages=com.cityid
database.schema=dbo
hibernate.cache.provider_class=net.sf.ehcache.hibernate.SingletonEhCacheProvider
REM hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider
你有'show_sql'設置,所以你可以看到它正在運行的確切的SQL查詢。您是否嘗試過手動執行查詢以查看您獲得的結果? – chrylis
我在MS SQL中手動執行查詢,它工作正常,並返回真正的元組! –
而這與Hibernate具有完全相同的憑證? – chrylis