比如说有两个表一个是School表一个是Students表,是一多对的关系,Students表中存在School表的外键.
School表有多条记录,现在要用到HibernateTemplate类插入一条记录到Students表中,具体怎么操作,望高手指教一下。

解决方案 »

  1.   

    学校的表需要字段:id、校名等
    学生表需要:学生id、学生名字、资料、最重要的是关联的学校id
    这里你要添加学生,学校的资料就必须先存在
    然后加学生的时候,关联的选择学校id!
    一个思路,具体自己实现
      

  2.   

    可是hibernate是面向对象操作的啊,学生实体类里只有学校这个对象,没有ID能说一下个具体怎么操作吗,要用到hibernateTemplate类的什么方法?
      

  3.   

    通过学校的id先找到这个学校,然后将学校set进一个学生对象中,再进行添加不就可以了。
    查找的方法hibernateTemplate.find();
      

  4.   

    关键是学校实体类里没有ID这个字段啊,只有一个SET集合的属性。
      

  5.   


    this.getHibernateTemplate().save(student);hibernate 会自动级联保存只要你的配置文件里面保存的有~
    <set name="allroundInfos" inverse="true">
                <key>
                    <column name="event" precision="18" scale="0" />
                </key>
                <one-to-many class="com.yaxing.entity.AllroundInfo" />
            </set>
      

  6.   

    自动级联的前提是你要设置关系才可以!
    你都没设定关系,怎么知道这个学生是哪个老师的!
      Teacher t = getHibernateTemplate().get(Teacher.class, new Integer(tid)); 
      Student.setTeacher(t);
    这个tid怎么得到?老师实例类中的没有ID属性,只有一个SET集合的属性。
      

  7.   

    需要设置cascade参数,例如<one-to-one name="person" cascade="persist,delete,lock"/> 
      

  8.   

    现在是我要插入一条记录到学生表里面,但是要跟老师表中的一条记录相关,前提是只有老师表中的ID才能代表是唯一的一条记录,现在要根据ID把老师的一条记录取出来,问题是用到hibernate的话老师实体类是没有ID这个属性的,怎么查?