インポートされたExcelシートからjtableから取得したデータを何日も保持しようとして成功しませんでしたが、例外を見つけようとするとうんざりします。
これがコードの一部とエラースタックトレースです
@Action
public void persist(){
emf = Persistence.createEntityManagerFactory("MauranaSurveyPU");
em = emf.createEntityManager();
em.getTransaction().begin();
//loops through table to retrieve object and persist
int count = jTable1.getRowCount();
for(int i=0; i<count; i++){
Mauranagroup mn = new Mauranagroup();
String obj1 = (String)GetData(jTable1,i,0);
String obj2 = (String)GetData(jTable1,i,1);
String obj3 = (String)GetData(jTable1,i,2);
//set entity
mn.setRespondentId(Integer.parseInt(obj1));
mn.setMale(obj2);
mn.setFemale(obj3);
em.persist(mn);
}//end for
em.getTransaction().commit();
}//end method persist
// get object from jtable
private Object GetData(JTable jTable1, int x, int y) {
return jTable1.getModel().getValueAt(x,y);
}
このコードの問題は、実際には持続することですが、トランザクションがコミットした後、このスタックトレースを取得します。
内部例外:java.sql.SQLIntegrityConstraintViolationException:「MAURANAGROUP」で定義された「SQL130204062549290」によって識別される一意または主キー制約または一意のインデックスで重複キー値が発生したため、ステートメントが中止されました。エラーコード:20000呼び出し:INSERT INTO MAURANAGROUP(RESPONDENT_ID、AMOUNTTOBESPENT、AREYOUFAMILIARNO
bind => [211パラメータバインド]クエリ:InsertObjectQuery(entity.Mauranagroup [respondentId = 5])
レコードを削除して再度保持すると、別の行が表示されます
bind => [211パラメータバインド]クエリ:InsertObjectQuery(entity.Mauranagroup [respondentId = 2])at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:324)
私はそれが理解できません、それは実際に持続し、私は私の保存されたデータを見ることができます。それはループなのか、それともループがうまく終了していないのか、このプロジェクトのために実際に病気になっています。