私は、データを取り込もうとしている4つのテーブルのそれぞれについて、この問題以外にこの問題を明確にする方法はよくわかりません。ただ空です。どのものが空になるのか予測できません。それは、1と2、またはわずか3、または1つのテーブル以外のすべてである可能性があります。テーブルの1つが実装されていない場合、私はrollback()catchブロックで終わります。時々彼らはすべて働きます。これはある種のスレッド中断と関係しています。下のコードと例外を考えれば、何がうまくいかないでしょうか?オブジェクトの作成と保存のためのスレッド "Thread-10"の例外java.lang.IllegalStateException
スレッド:
new Thread(() -> {
/* Loop through the "primary key" incidentNumber to create list of objects in memory */
for (int i = 0; i < incidentNumberList.size(); i++) {
Incident incident = new Incident();
/* Save Incidents to Local H2 Database */
if (!(targetDateList.get(i).isEmpty())) {
try {
String targetDate = DateUtil.formatTargetDate(targetDateList.get(i));
String timeRemaining = DateUtil.getTimeRemaining(targetDateList.get(i));
try {
// Make sure no transactions are currently running to avoid JPA Error
if (!entityManager.getTransaction().isActive()) {
// Begin saving Incident objects to H2
entityManager.getTransaction().begin();
incident.setIncidentNumber(incidentNumberList.get(i));
incident.setSummary(summaryList.get(i));
incident.setRequestId(requestIdList.get(i));
incident.setPriority(priorityList.get(i));
incident.setLastModifiedDate((lastModifiedDateList.get(i)));
incident.setStatus(statusList.get(i));
incident.setTargetDate(targetDate);
incident.setTimeRemaining(timeRemaining);
incident = entityManager.merge(incident);
entityManager.getTransaction().commit();
}
} catch (Exception e) {
entityManager.getTransaction().rollback();
}
} catch (ParseException e) {
e.printStackTrace();
}
}
/* Create 4 separate lists for each priority level, i.e. Low --> Critical, to populate each of the 4 TableViews */
if (priorityList.get(i).equals(priorityType)) {
switch (priorityType) {
case "Low":
incidentObjectListGreen.add(incident);
break;
case "Medium":
incidentObjectListYellow.add(incident);
break;
case "High":
incidentObjectListOrange.add(incident);
break;
case "Critical":
incidentObjectListRed.add(incident);
break;
}
Incident finalIncident = incident;
Platform.runLater(() -> dataPriority.add(finalIncident));
}
}
}).start();
例外:
Exception in thread "Thread-11" java.lang.IllegalStateException:
Exception Description: No transaction is currently active
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.rollback(EntityTransactionImpl.java:176)
at app.controller.TableViewController.lambda$organizeTable$2(TableViewController.java:432)
at java.lang.Thread.run(Thread.java:745)
Exception in thread "Thread-10" java.lang.IllegalStateException:
Exception Description: No transaction is currently active
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.rollback(EntityTransactionImpl.java:176)
at app.controller.TableViewController.lambda$organizeTable$2(TableViewController.java:432)
at java.lang.Thread.run(Thread.java:745)
Exception in thread "Thread-9" java.lang.IllegalStateException:
Exception Description: No transaction is currently active
at org.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl.rollback(EntityTransactionImpl.java:176)
at app.controller.TableViewController.lambda$organizeTable$2(TableViewController.java:432)
at java.lang.Thread.run(Thread.java:745)
インシデントエンティティ:
@Entity
@Table(name = "INCIDENT")
public class Incident implements Serializable {
@Id
@Column(name = "INCIDENTNUMBER")
private String incidentNumber;
@Column(name = "SUMMARY")
private String summary;
@Column(name = "REQUESTID")
private String requestId;
@Column(name = "PRIORITY")
private String priority;
@Column(name = "STATUS")
private String status;
@Column(name = "ASSIGNEE")
private String assignee;
@Column(name = "LASTMODIFIEDDATE")
private String lastModifiedDate;
@Column(name = "TARGETDATE")
private String targetDate;
@Column(name = "TIMEREMAINING")
private String timeRemaining;
public String getRequestId() {
return requestId;
}
public void setRequestId(String requestId) {
this.requestId = requestId;
}
public String getIncidentNumber() {
return incidentNumber;
}
public void setIncidentNumber(String incidentNumber) {
this.incidentNumber = incidentNumber;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public String getPriority() {
return priority;
}
public void setPriority(String priority) {
this.priority = priority;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getAssignee() {
return assignee;
}
public void setAssignee(String assignee) {
this.assignee = assignee;
}
public String getLastModifiedDate() {
return lastModifiedDate;
}
public void setLastModifiedDate(String lastModifiedDate) {
this.lastModifiedDate = lastModifiedDate;
}
public String getTargetDate() {
return targetDate;
}
public void setTargetDate(String targetDate) {
this.targetDate = targetDate;
}
public String getTimeRemaining() {
return timeRemaining;
}
public void setTimeRemaining(String timeRemaining) {
this.timeRemaining = timeRemaining;
}
}
スタックトレース:
} catch (Exception e) {
entityManager.getTransaction().rollback();
}
問題#1 - あなたは例外を潰している:
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
java.lang.IllegalArgumentException: Object: [email protected] is not a known entity type.
at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4222)
at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:496)
at app.controller.TableViewController.lambda$organizeTable$3(TableViewController.java:430)
at java.lang.Thread.run(Thread.java:745)
右。それを指摘してくれてありがとう。私はstacktraceを追加し、私の質問を更新しました。それを見て... – santafebound
はい。そして、あなたの問題の根本的な原因を説明します。 *その*例外メッセージに関するQ&Aを検索してみてください。 –