2

У меня есть объект пользователя, который является OneToMany, сопоставленным с другим объектом «item». Список элементов успешно добавлен до тех пор, пока элементы не будут повторяться. Как добавить дубликаты товара пользователю.Как я могу добавить повторяющиеся элементы к объекту, который сопоставлен (OneToMany), другому классу сущности при использовании Spring mvc и Hibernate

В пользователя сущности

@OneToMany(mappedBy="user") 
private List<Item> item; 

//getters and setters 

товара Entity

@ManyToOne(cascade = CascadeType.ALL,fetch = FetchType.EAGER) 
@JoinTable(
     name="UserItem", 
     joinColumns= @JoinColumn(name="ITEM_ID"), 
     inverseJoinColumns = @JoinColumn(name="USER_ID") 
) 
private User user; 

//getters and setters 

Моя функция в классе обслуживания, чтобы добавить пункт к пользователю

public void addItemToUser(Integer userId,Integer itemId){ 
    Session session = sessionFactory.getCurrentSession(); 
    Item item2 = (Item)session.get(Item.class,itemId); 
    // session.save(item2); 
    User user2 = (User)session.get(User.class,userId); 
    user2.getItem().add(item2); 

    session.save(user2); 
} 

Как я могу добавить повторяющиеся элементы для пользователя. Я новичок в весне и спящем состоянии

+1

Как вы указали в списке , говоря, что это обратная сторона отношения. Поэтому, чтобы иметь двухстороннее однонаправленное отношение, удалите атрибут mappedBy и поместите cascade = "CascadeType.ALL". Else сохранить каждый раз элемент, и пользователь будет автоматически обновляться, поскольку класс Item принадлежит стороне отношения. –

ответ

0

Проверьте, действительно ли вам нужно использовать CascadeType.ALL вместо Cascade.SaveUpdate.