当前位置:编程学习 > JAVA >>

关于HibernateTemplate保存级联对象的问题

  比如说有两个表一个是School表一个是Students表,是一多对的关系,Students表中存在School表的外键.
School表有多条记录,现在要用到HibernateTemplate类插入一条记录到Students表中,具体怎么操作,望高手指教一下。 --------------------编程问答-------------------- 学校的表需要字段:id、校名等
学生表需要:学生id、学生名字、资料、最重要的是关联的学校id
这里你要添加学生,学校的资料就必须先存在
然后加学生的时候,关联的选择学校id!
一个思路,具体自己实现 --------------------编程问答--------------------
引用 1 楼  的回复:
学校的表需要字段:id、校名等
学生表需要:学生id、学生名字、资料、最重要的是关联的学校id
这里你要添加学生,学校的资料就必须先存在
然后加学生的时候,关联的选择学校id!
一个思路,具体自己实现

可是hibernate是面向对象操作的啊,学生实体类里只有学校这个对象,没有ID能说一下个具体怎么操作吗,要用到hibernateTemplate类的什么方法? --------------------编程问答-------------------- 看来高手都挺忙哈! --------------------编程问答-------------------- 哪位大侠帮忙触决一下呗! --------------------编程问答-------------------- 通过学校的id先找到这个学校,然后将学校set进一个学生对象中,再进行添加不就可以了。
查找的方法hibernateTemplate.find(); --------------------编程问答-------------------- getHibernateTemplate().save(entity); --------------------编程问答--------------------
引用 5 楼  的回复:
通过学校的id先找到这个学校,然后将学校set进一个学生对象中,再进行添加不就可以了。
查找的方法hibernateTemplate.find();
关键是学校实体类里没有ID这个字段啊,只有一个SET集合的属性。 --------------------编程问答--------------------



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>
--------------------编程问答--------------------
引用 8 楼  的回复:
Java code



this.getHibernateTemplate().save(student);


hibernate 会自动级联保存

只要你的配置文件里面保存的有~
XML code
<set name="allroundInfos" inverse="true">
            <key>
                <column name="e……
自动级联的前提是你要设置关系才可以!
你都没设定关系,怎么知道这个学生是哪个老师的!
  Teacher t = getHibernateTemplate().get(Teacher.class, new Integer(tid)); 
  Student.setTeacher(t);
这个tid怎么得到?老师实例类中的没有ID属性,只有一个SET集合的属性。
--------------------编程问答-------------------- 需要设置cascade参数,例如<one-to-one name="person" cascade="persist,delete,lock"/>  --------------------编程问答--------------------
引用 10 楼  的回复:
需要设置cascade参数,例如<one-to-one name="person" cascade="persist,delete,lock"/>

现在是我要插入一条记录到学生表里面,但是要跟老师表中的一条记录相关,前提是只有老师表中的ID才能代表是唯一的一条记录,现在要根据ID把老师的一条记录取出来,问题是用到hibernate的话老师实体类是没有ID这个属性的,怎么查? --------------------编程问答--------------------
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,