1.此处以用户和角色作为实体进行多对多映射,用@JoinTable指定中间表的名称
User.java
@Entity
public class User {
private Integer id;
private String name;
private Set<Role> roles;
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@ManyToMany
@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
}
Role.java
@Entity
public class Role {
private Integer id;
private String name;
@Id
@GeneratedValue
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3.删除中间表的数据
user表
role表
user_role表
只需查询user,然后修改user中关联的role,再重新保存user即可
public class HibernateTestCase {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
User user = (User) session.get(User.class, 1);
user.getRoles().clear();
session.merge(user);
session.flush();
session.close();
}
}
分享到:
相关推荐
本文将围绕“hibernate3.3.2”这一主题,结合hibernate-annotations-3.4.0.GA和slf4j-1.5.8这两个关键组件,深入探讨其核心概念、整合过程以及实际应用。 一、Hibernate 3.3.2概述 1. ORM概念:Hibernate作为ORM...
3. **hibernate-commons-annotations.jar**:这个库文件包含了Hibernate的通用注解,它们是针对Java Persistence API (JPA)的扩展,使得开发者可以使用注解的方式在实体类上定义ORM元数据,如@Entity、@Table、@Id等...
- Hibernate Annotations:提供了注解方式来描述实体类和属性,替代传统的XML配置。 - Hibernate EntityManager:JPA(Java Persistence API)的一部分,为Java EE环境提供了ORM服务。 - Hibernate Tools:包含了...
此外,还需要添加Hibernate Annotations库以及JPA API库。如果使用Maven管理项目依赖,则可以在`pom.xml`文件中添加以下依赖项: ```xml <groupId>org.hibernate <artifactId>hibernate-core <version>5.x....
targetEntity = org.hibernate.test.annotations.manytomany.Employee.class, cascade = {CascadeType.PERSIST, CascadeType.MERGE} ) @JoinTable( name = "EMPLOYER_EMPLOYEE", joinColumns = {@JoinColumn...
在EJB3中,实体Bean不再需要编写大量的接口和实现代码,而是利用注解(Annotations)来定义其行为和属性,大大减少了代码量。 2. **JPA和Hibernate** EJB3的实体Bean通常与Java Persistence API (JPA)一起使用,...