Сохраненные данные изменены после возврата службы 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);
}
}
РЕДАКТИРОВАТЬ: я наконец-то решил проблему. Это произошло из-за незакрытой транзакции, использованной для сбора данных в начале алгоритма. Эта транзакция оставалась в силе до возвращения службы покоя, а затем была вынуждена завершить и сбросить состояние своих данных, которое устарело.