サーブレットがレコードを書き込もうとしたときに、次の例外が発生しました。
javax.persistence.EntityNotFoundException: Could not retrieve entity of kind MyEntity with key MyEntity(1318001)
ID 1318001 がデータストアに存在しないことを確認したとしても。私のサーブレットがトランザクションをコミットしたときに起こりました。
これが私のコーディングです:
EntityManagerFactory emfInstance =
Persistence.createEntityManagerFactory("transactions-optional");
EntityManager em = emfInstance.createEntityManager();
em.getTransaction().begin();
MyEntity ent = new MyEntity(....);
em.persist(ent);
log.info(ent.toString());
em.getTransaction().commit();
ログで ent を確認できますが、commit ステートメントで例外が発生しました。誰か助けてください。
編集: @jirungaray @Nicholas、コメントありがとうございます。問題は解決されませんでした。私はそれがいつ起こったのかを監視するためにtry
とcatch
atを追加することになりました。commit()
アプリを別のアプリに置き換えたところ、同じ問題は発生しませんでした。それでも興味がある場合は、エンティティを次に示します。
@Entity
public class MyEntity implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long key;
private String tDate;
private int stkCode;
private Text tradeRec;
public MyEntity() {}
public MyEntity(int code, String dd, Text trec) {
this.stkCode = code;
this.tDate = dd;
this.tradeRec = trec;
}
..... getter and setter skipped