【发布时间】:2014-11-19 12:37:12
【问题描述】:
我有一个实体“用户”,它是 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);
}
如何向用户添加重复项目。我是春天和冬眠的新手
【问题讨论】:
-
正如您在 List
- 上给出的 mappedBy 说它是关系的反面。因此,为了有两种方式的单向关系,请删除该 mappedBy 属性并放入 cascade="CascadeType.ALL"。否则每次保存项目和用户将自动更新,因为项目类拥有关系。
标签: spring hibernate spring-mvc hibernate-mapping hibernate-onetomany