StaleObjectStateException:行已由JPA中的另一个事务更新或删除

时间:2012-03-08 06:13:43

标签: jpa-2.0

我在“Letter.java”中有ManyToOne关系,如下所示;

@ManyToOne(fetch = FetchType.EAGER)
    private Letter inResponseTo;

使用一个Letter对象多个inResponseTo相同的Letter类型的对象被关联。对于Letter对象,所有inResponseTo对象都得到更新,所以最初我在循环中合并()它们并最终持久化()将Letter对象作为如下:

private void saveCorrespondence(List<Letter> letterList,
            final Claimant claimant) {
        for (Letter letter : letterList) {
            if(letter.getLetterCode() == null) {                
                if(letter.getMailType() == MailType.OUTGOING) {
                    letter.setLetterCode(LetterCode.findByCode("701"));
                } else if(letter.getMailType() == MailType.INCOMING) {
                    letter.setLetterCode(LetterCode.findByCode("109"));
                }
            }   
            letter.setClaimant(claimant);
            if (letter.getId() != null) {
                letter = letter.merge();
                letter.flush();
            }
            letter.persist();//Here in this line i am getting an error.
        }
    }

注意:-Claimant和Letter有OneToMany关系 虽然持续将错误视为StaleObjectStateException:Row被同一行中的另一个事务JPA更新或删除。如何解决这个问题请帮助我。

0 个答案:

没有答案