2012-02-06 6 views
0

DBに2つのテーブルを埋め込むことができます。そこには、テーブルにマッピングがあります(1つのテーブルには他からFKがあります)。 EclipseLink DataSourceは、DBへのフラッシュが正常に完了したことを示しています。 persistent.xmlに というプロパティ句がある間に、同じデータを使ってテーブルを再作成しようとしています: 書き換え前に前のテーブルを削除(消去)していないので、JPA経由でDerby DBテーブル(FK付き)を書き直す

「内部例外: java.sql.SQLIntegrityConstraintViolationException:それはユニーク で重複したキー値または主キー制約を引き起こしてしまうため、ステートメントが 中止された重複キーに関する次の例外メッセージを拒否または で識別される一意のインデックス 'SQL120206135740510' def 「HOST」に入った「(HOSTテーブルがFKによって を指摘している)。

私はpersistence.xmlで行方不明ですか、他それが書き換え前に、テーブルのドロップを作るべきか? 以下(persistence.xmlファイルを参照してくださいDBファイルが「テスト」と呼ばれるスキーマは、ユーザー名(私の場合はAPP)の後に名前です):最高級の値またはALLで「eclipselink.logging.level」プロパティを追加すること

<?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

てみてくださいドロップが実行されていない理由を確認してください。

1

"drop-create-table 「s」は「ドロップ・アンド・・・・・・テーブル」

関連する問題