Я пытаюсь сохранить объект (Sortie), где пользователь подключен. , поэтому у меня есть один администратор, который влияет на вылазок для пользователя, но у меня есть этот выпуск, когда пользователь подключен, значит, когда объект уже находится в сеансе. Как я могу сохранить объект Sortie, пока все пользователи подключены. вот мой код:a Другой объект с тем же значением идентификатора уже был связан с сеансом
Модель Sortie
@Entity
public class Sortie implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private Date dateSortie;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_utilisateur", nullable = false)
private Utilisateur utilisateur;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "id_recepteur", nullable = false)
private Utilisateur recepteur;
.... }
Объекты DAO:
AbstarctDao:
public abstract class AbstractDao<PK extends Serializable, T> {
private final Class<T> persistentClass;
@SuppressWarnings("unchecked")
public AbstractDao() {
this.persistentClass = (Class<T>) ((ParameterizedType) this.getClass().getGenericSuperclass())
.getActualTypeArguments()[1];
}
@Autowired
private SessionFactory sessionFactory;
protected Session getSession() {
return sessionFactory.getCurrentSession();
}
@SuppressWarnings("unchecked")
public T getByKey(PK key) {
return (T) getSession().get(persistentClass, key);
}
public void persist(T entity) {
getSession().persist(entity);
}
public void merge(T entity) {
getSession().merge(entity);
}
public void update(final T entity) {
Preconditions.checkNotNull(entity);
getSession().update(entity);
}
public void updateorsave(final T entity) {
Preconditions.checkNotNull(entity);
getSession().saveOrUpdate(entity);
}
public void delete(T entity) {
getSession().delete(entity);
}
protected Criteria createEntityCriteria() {
return getSession().createCriteria(persistentClass);
}
}
SortieDaoImp:
....
public Sortie addSortie(Sortie sortie) {
merge(sortie);
return sortie;
}
.....
Контроллер
......
Sortie sortie = new Sortie();
sortie.setUtilisateur(userService.findUserByUsername(getPseudoCo()));
sortie.setRecepteur(commande.getUtilisateur());
Sortie exit = sortieService.addSortie(sortie);
......
[Изменить]: я не могу очистить сессию, потому что я все еще нуждаются в obejct вылазку.