2012-02-06 68 views
0

重寫Derby DB表(使用FK)我可以填充表中具有映射的數據庫中的2個表(其中一個表具有來自他的FK)。 EclipseLink DataSource顯示對數據庫的刷新已完成。 我試圖重寫表(第二次具有相同的數據),而persistence.xml具有 屬性子句,如下所示: <property name="eclipselink.ddl-generation" value="drop-create-tables" /> 但我看到在重寫之前沒有刪除(擦除)前面的表,因此得到有關重複鍵下面的異常消息拒絕:通過JPA

「內部異常: java.sql.SQLIntegrityConstraintViolationException:語句是 放棄,因爲它會造成一個獨特的 或主鍵約束重複鍵值或由 'SQL120206135740510'def標識的唯一索引在'主機'上登入。 「(HOST是表指出 由FK)。

什麼我在persistence.xml失蹤否則,應該使改寫前的桌子降? 下面看到persistence.xml文件( 。數據庫文件名爲「測試」的模式是名稱的用戶名(APP在我的情況))後:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
     <persistence-unit name="jpa_test"> 
       <class>Host</class> 
       <class>Vm</class> 
       <properties> 
         <property name="javax.persistence.jdbc.url" value="jdbc:derby://im6-64s:1527/test;create=true" /> 
         <property name="javax.persistence.jdbc.user" value="APP" /> 
         <property name="javax.persistence.jdbc.password" value="passw0rd" /> 
         <!-- EclipseLink should create the database schema automatically --> 
         <property name="eclipselink.ddl-generation" value="drop-create-tables" /> 
         <property name="eclipselink.ddl-generation.output-mode" value="database" /> 
       </properties> 

     </persistence-unit> 
</persistence> 

回答

0

嘗試添加「eclipselink.logging.level」屬性與最優秀或所有的值看看爲什麼drop可能不會被執行

1

「drop-create-table s「應該是」下降並創建表「