Сохраненные данные изменены после возврата службы rest

У меня есть служба REST, которая использует bean-компонент без сохранения состояния для выполнения алгоритма с использованием других bean-компонентов. Все эти компоненты внесли изменения в поля моих данных, включая поле ManyToOne. В конце алгоритма, непосредственно перед "возвратом" моей службы отдыха, мои данные находятся в правильном состоянии, и соответствующее поле ManyToOne было изменено. Но сразу после возврата остальной службы в этом поле, по-видимому, происходит обновление, и оно возвращается в прежнее состояние. Но остальные поля все еще находятся в правильном состоянии.

Что может изменить мои данные после "возвращения" моего отдыха?

Проект работает с Hibernate и JTA-транзакциями в среде wildfly.

Данные выглядят как ниже:

public class Data extends JpaDecorator {
    @Column(length=1024)
    @Override
    public String getCommentaire() {
        return getImpl().getCommentaire();
    }

    @Column(length=1024)
    @Override
    public void setCommentaire(String value) {
        getImpl().setCommentaire(value);
    }
}

@MappedSuperclass
public class JpaDecorator<T> {

    private WorkspaceJpa workspaceJpa;

    private T impl;

    @Transient
    public T getImpl() {
        return impl;
    }

    @ManyToOne
    @JoinColumn(name = "wid", referencedColumnName = "oid")
    public WorkspaceJpa getJpaWid() {
        return this.workspaceJpa;
    }

    public void setJpaWid(WorkspaceJpa value) {
        this.workspaceJpa = value;

        Workspace wks = ((this.workspaceJpa != null) ? this.workspaceJpa.getImpl() : null);
        getImpl().setWid(wks);
    }

}

РЕДАКТИРОВАТЬ: я наконец-то решил проблему. Это произошло из-за незакрытой транзакции, использованной для сбора данных в начале алгоритма. Эта транзакция оставалась в силе до возвращения службы покоя, а затем была вынуждена завершить и сбросить состояние своих данных, которое устарело.

0 ответов

Другие вопросы по тегам