2

OneToMany가 다른 엔티티 "항목"에 매핑 된 엔티티 "user"가 있습니다. 항목이 중복되지 않을 때까지 항목 목록이 성공적으로 추가됩니다. 중복 된 항목을 사용자에게 추가하는 방법. 서비스 클래스 항목의 엔티티에 사용자 개체spring mvc와 Hibernate를 사용하는 동안 (OneToMany) 다른 엔티티 클래스에 중복 엔티티를 추가하는 방법

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

//getters and setters 

에서

@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를 지정 했으므로 은 관계의 반대면이라고합니다. 그러므로 양방향 단방향 관계를 가지려면 mappedBy 속성을 제거하고 cascade = "CascadeType.ALL"을 넣으십시오. 다른 시간에 항목을 저장하면 항목 클래스가 관계 측면을 소유하므로 사용자가 자동으로 업데이트됩니다. –

답변

0

Cascade.SaveUpdate 대신 CascadeType.ALL을 사용해야하는지 확인하십시오.