Hibernate多对多简单配置
来源:互联网 发布:unity3d在线教程 编辑:程序博客网 时间:2024/06/03 16:21
@Entity@Table(name="teacher",catalog="hibernate3")public class Teacher implements Serializable {private Long tid;private String name;private Integer age;private Set<Course> courses=new HashSet<>(); public Teacher() {super();}public Teacher( String name, Integer age) {super();this.name = name;this.age = age;}@Id@GeneratedValue(strategy=GenerationType.AUTO) public Long getTid() {return tid;}public void setTid(Long tid) {this.tid = tid;}@Column(name="name",length=30)public String getName() {return name;}public void setName(String name) {this.name = name;}@Column(name="age",length=4)public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;} /* * @JoinTable配置一个中间表 * joinColumns:当前类在中间表的id列名 * inverseJoinColumns:对方类在中间表的id列名 */ @ManyToMany(cascade=CascadeType.ALL) @JoinTable(name="thacher_course", joinColumns=@JoinColumn(name="teacher_id"), inverseJoinColumns={@JoinColumn(name="course_id")})public Set<Course> getCourses() {return courses;}public void setCourses(Set<Course> courses) {this.courses = courses;}}
Course类
@Entity@Table(name="course",catalog="hibernate3")public class Course implements Serializable {private Long cid;private String name;private Set<Teacher> teachers =new HashSet<>(); public Course(String name) {super();this.name = name;}public Course() {super();}@Id @GeneratedValue //默认AUTO--Native public Long getCid() {return cid;}public void setCid(Long cid) {this.cid = cid;}@Column(name="name",length=20)public String getName() {return name;} public void setName(String name) {this.name = name;} /* * mappedBy="courses",表示自已不维护id关系了,交给对方Thacher去维护 */@ManyToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="courses")//抓取策略@Fetch(FetchMode.SELECT)public Set<Teacher> getTeachers() {return teachers;}public void setTeachers(Set<Teacher> teachers) {this.teachers = teachers;}}
cascade=CascadeType.ALL
public class ManyToMany { //课程添加老师@Testpublic void testName1() throws Exception { Session session = HibernateUtils1.openSession(); Transaction trans = session.beginTransaction(); Teacher tt=new Teacher("zz11", 12); Course cc1=new Course("语文111"); Set<Teacher> set=new HashSet<>(); set.add(tt); //这里是课程添加老师,因为课程这边不维护关系,所以中间表没有记录的 cc1.setTeachers(set); session.save(cc1); trans.commit(); session.close();}//老师添加课程@Testpublic void testName111() throws Exception {Session session = HibernateUtils1.openSession();Transaction trans = session.beginTransaction();Teacher tt=new Teacher("aa1", 12);Course cc1=new Course("奥数1");Set<Course> set=new HashSet<>();set.add(cc1);//老师添加课程,老师需要维护关系(写入中间表)tt.setCourses(set); session.save(tt);trans.commit();session.close();}@Testpublic void testName3() throws Exception {Session session = HibernateUtils1.openSession();Transaction trans = session.beginTransaction();//一个老师对象Teacher tt = new Teacher("小wang11",11);session.save(tt);//一个课程对象Course course = new Course("数学1111");session.save(course);//老师添加课程,维护中间表tt.getCourses().add(course);//课程添加老师,不会维护中间表//course.getTeachers().add(tt);trans.commit();session.close();}}
0 0
- Hibernate多对多简单配置
- HIBERNATE多对多配置
- Hibernate多对多配置
- Hibernate多对多配置
- hibernate多对多配置
- Hibernate 多对一配置
- hibernate简单多对一实例
- Hibernate学习笔记2--------------------一对多、多对一简单配置
- Hibernate Annotation 多对多 配置
- hibernate 注解 多对多配置
- Hibernate annotation多对多配置
- Hibernate多对多注解配置实例
- Hibernate多对多的关联配置
- Hibernate 多对多环境配置
- hibernate 多对多关系配置
- hibernate多对多注解配置
- Hibernate 多对多关联映射配置
- hibernate多对一单向配置
- 如何系统的学习linux
- 为String、Map和其他实体类的队列进行排序,支持多字段排序
- Android React-Native系列之<一>零基础搭建React-Native开发环境
- 深度信念网络与受限玻尔兹曼机
- Windows打败了Unix,但Linux是打不倒的!
- Hibernate多对多简单配置
- Windows与UNIX/Linux之比较
- UNIX、Linux、Solaris、Windows到底谁更好?
- 经验风险最小化与结构风险最小化笔记
- Red Hat Enterprise Linux 7.0 Beta —— document
- Gpload error: [could not execute SQL in sql:after "Vacuum analyze
- linux mutt详解
- style.width和offsetwidth区别
- Windows8下硬盘安装Fedora17——可能会遇到的问题