解决方案 »

  1.   

       package com.sise.hibernate5;import java.util.Set;public class Course {
                
    private String id;

    private String name;

    private Set<Student> students; public String getId() {
    return id;
    } public void setId(String id) {
    this.id = id;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public Set<Student> getStudents() {
    return students;
    } public void setStudents(Set<Student> students) {
    this.students = students;
    }


    }
      

  2.   

    package com.sise.hibernate5;import java.util.Set;public class Student {

     private String id;
     
     private String name;
     
     private Set<Course> courses; public String getId() {
    return id;
    } public void setId(String id) {
    this.id = id;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public Set<Course> getCourses() {
    return courses;
    } public void setCourses(Set<Course> courses) {
    this.courses = courses;
    }
     
     }
      

  3.   

    两个hbm文件<?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>
      <class name="com.sise.hibernate5.Course" table="cou1">
      
       <id name="id" column="id" type="string">
        
          <generator class="uuid"></generator>
       
       </id>
       
        <property name="name" column="name" type="string"></property>
        
        <set name="students" table="stu_cour" cascade="save-update" inverse="true">
        
           <key column="course_id"></key>
        
           <many-to-many class="com.sise.hibernate5.Student" column="student_id"></many-to-many>
        
        </set>
        
        
      </class>
      
     </hibernate-mapping>
      

  4.   


    试了好像还不行,那么我要读取到这个学号的人的选课信息好像还不能实现,怎么解决,HQL  怎么写?
      

  5.   


    试了好像还不行,那么我要读取到这个学号的人的选课信息好像还不能实现,怎么解决,HQL  怎么写?我是直接get回Student对象的
      

  6.   


    试了好像还不行,那么我要读取到这个学号的人的选课信息好像还不能实现,怎么解决,HQL  怎么写?我是直接get回Student对象的
    <key column="course_id"></key>写反了
      

  7.   


    试了好像还不行,那么我要读取到这个学号的人的选课信息好像还不能实现,怎么解决,HQL  怎么写?我是直接get回Student对象的
    <key column="course_id"></key>写反了
    多对多映射key参考自己的id
      

  8.   


    试了好像还不行,那么我要读取到这个学号的人的选课信息好像还不能实现,怎么解决,HQL  怎么写?我是直接get回Student对象的
    <key column="course_id"></key>写反了
    多对多映射key参考自己的id看一些资料说,hibernate不要用复合主键,把它拆成两个一对多,好模糊
      

  9.   


    试了好像还不行,那么我要读取到这个学号的人的选课信息好像还不能实现,怎么解决,HQL  怎么写?我是直接get回Student对象的那您能得到关于这个学生的选课信息吗?
    我的后台只输出一条sql语句
      

  10.   


    试了好像还不行,那么我要读取到这个学号的人的选课信息好像还不能实现,怎么解决,HQL  怎么写?我是直接get回Student对象的
    <key column="course_id"></key>写反了写反了?这个是Course的hbm文件
      

  11.   


    试了好像还不行,那么我要读取到这个学号的人的选课信息好像还不能实现,怎么解决,HQL  怎么写?我是直接get回Student对象的那您能得到关于这个学生的选课信息吗?
    我的后台只输出一条sql语句还有一个Student的hbm文件<?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping>
      <class name="com.sise.hibernate5.Student" table="stu1">
      
       <id name="id" column="id" type="string">
        
          <generator class="uuid"></generator>
       
       </id>
       
        <property name="name" column="name" type="string"></property>
        
        <set name="courses" table="stu_cour" cascade="save-update">
        
           <key column="student_id"></key>
        
           <many-to-many class="com.sise.hibernate5.Course" column="course_id"></many-to-many>
        
        </set>
        
        
      </class>
      
     </hibernate-mapping>
      

  12.   

    hibernate不用吧中间表也搞进去吧,你在数据库把关系配置好,hibernate自动配置好关系,用set就OK了
      

  13.   

    我简单看了一下,是不是学生表引用了科目表的。
    不用想,科目表肯定是主表了。
    实现呢,也很简单的,最简单的就是根据id得到学生表这个实体类,
    然后通过这个学生的实体类可以得到相对科目表了,hibernate支持根据实体类查询的