关于一对多关系维护 这个问题我试着做了一天了 老不对 请教高人

问题描述

三个表部门表(dept)员工表(emp)员工附件表(empfile)关系:部门表和员工表是一对多员工表和附件表是一对多(添加员工时上传的附件重新做了一个附件表用外键关联起来)每一步我都写了注视而且很清晰谢谢了各位主要代码如下:publicclassUserActionextendsActionSupportimplementsModelDriven<Emp>{privateEmpemp=newEmp();---------->实例化员工表(里边有员工的一些具体信息如果年龄,爱好,部门等)privateEmpInterempServiceImpl;--------->员工接口(里边有员工的增删改查)等方法privateDeptInterdeptServiceImpl;--------->部门接口(里边有员工的增删改查)等方法privateEmpfileempfile=newEmpfile();------->员工附件表里边两个字段,Filename存放附件的名称uuidfilename存放附件的路径和uuid名称@OverridepublicEmpgetModel(){//TODOAuto-generatedmethodstub//使用模型驱动returnemp;}publicStringadd()throwsIOException{//上传附件if(upload!=null){StringuuidName=UUID.randomUUID().toString();Stringpath="/WEB-INF/upload/"+uuidName;//存放uuid文件名和路径FiledestFile=newFile(ServletActionContext.getServletContext().getRealPath(path));FileUtils.copyFile(upload,destFile);//将上传上来的文件的真实名称和uuid名称设进附件表(empfile)表empfile.setFilename(uploadFileName);//设进附件表的filename字段empfile.setUuidfilename(path);//设进附件表的uuidfilename字段***就是这里出错了员工表和附件表是一对多的维护关系我不知道这里应该怎样写就会对请教了emp.setEmpfiles((Set)empfile);//我在员工表设置了级联更新将empfile表的内容设进到雇员集合里就是这里出错了,按理说hibernate应该会自动维护一对多的关联的}//通过选择的部门select下拉框获取部门的id值然后通过方法获得部门emp.setDept((Dept)empServiceImpl.findObjectById(Dept.class,newBigDecimal(emp.getDeptId())));//添加时候要在emp.hbm.xml中配置使用级联更新empServiceImpl.addObject(emp);return"userAddSucess";}//定义上传文件的接收变量privateFileupload;//上传文件privateStringuploadContentType;//上传类型privateStringuploadFileName;//真实文件名

解决方案

解决方案二:
你在设置hibernate时候设置cascade="all"级联

时间: 2024-08-01 13:02:37

关于一对多关系维护 这个问题我试着做了一天了 老不对 请教高人的相关文章

[NHibernate]一对多关系(级联删除,级联添加)

目录 写在前面 文档与系列文章 一对多关系 一个例子 级联删除 级联保存 总结 写在前面 在前面的文章中,我们只使用了一个Customer类进行举例,而在客户.订单.产品中它们的关系,咱们并没有涉及,比如一个客户可以有一个或者多个订单,在数据库中变现为"主外键关系",有时也喜欢称为"父子关系".那么就让我们一起学习,在nhibernate中,是如何处理这种关系的吧? 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFacto

[Fluent NHibernate]一对多关系处理

目录 写在前面 系列文章 一对多关系 总结 写在前面 上篇文章简单介绍了,Fluent Nhibernate使用代码的方式生成Nhibernate的配置文件,以及如何生成持久化类的映射文件.通过上篇的学习你会发现,Fluent Nhibernate仍然需要引用Nhibernate的两个程序集(Nhibernate.dll和Iesi.Collections.dll),所以与Nhibernate最大的区别就在生成配置文件的方式上面,这里关于Nhibernate的特性方面就不再多赘述,可以参考Nhib

hibernate之xml映射文件关系维护,懒加载,级联

      一:关系维护   --->inverse默认值false,表示不放弃关系的维护.   --->inverse="true"配置在那一端,表示那一端xml对应的po放弃关系的维护(交由hibernate内部进行维护),由另一端进行关系维护.  例子:学生班级模型[多对一模型]一端放弃关系的维护,由学生端进行关系维护              ----->班级的xml映射文件中<set name="students" class=&q

NHibernate之旅(9):探索父子关系(一对多关系)

本节内容 引入 NHibernate中的集合类型 建立父子关系 父子关联映射 结语 引入 通过前几篇文章的介绍,基本上了解了NHibernate,但是在NHibernate中映射关系是NHibernate中的亮点,也是最难掌握的技术.从这篇开始学习这些东西,我将图文结合来说明这里奥秘的知识. 前几篇,我们的例子只使用了一个简单的Customer对象.但是在客户/订单/产品的经典组合中,他们的关系非常复杂?让我们先回顾在第二篇中建立的数据模型. 在图上,我已经清晰的标注了表之间的关系,首先分析Cu

entity-Android GreenDao 一对多关系,获取集合报错

问题描述 Android GreenDao 一对多关系,获取集合报错 设置好一对多关系之后,在获取对象List的时候报出该错误,请问是什么原因? public List getCasesFormInfoList() { if (casesFormInfoList == null) { if (daoSession == null) { throw new DaoException("Entity is detached from DAO context"); } CasesFormIn

[NHibernate]一对多关系(关联查询)

目录 写在前面 文档与系列文章 一对多查询 总结 写在前面 上篇文章介绍了nhibernate的一对多关系如何配置,以及级联删除,级联添加数据的内容.这篇文章我们将学习nhibernate中的一对多关系的关联查询.前面文章中也介绍的nhibernate的查询:HQL,条件查询,原生SQL查询. 文档与系列文章 [Nhibernate]体系结构 [NHibernate]ISessionFactory配置 [NHibernate]持久化类(Persistent Classes) [NHibernat

hibernate一对多关系中的外外键值无法获取

问题描述 hibernate一对多关系中的外外键值无法获取 !表中的外键cid值没有生成](http://img.ask.csdn.net/upload/201508/05/1438784830_640743.png) 解决方案 你其实可以不用写,可以自动生成相应的映射关系,这些主外键会自动帮你生成,至于怎么自动生成,你可以百度下,到处是的 解决方案二: 你其实可以不用写,可以自动生成相应的映射关系,这些主外键会自动帮你生成,至于怎么自动生成,你可以百度下,到处是的 解决方案三: http://

mysql-SQL数据库一对多关系如何取出多条数据?

问题描述 SQL数据库一对多关系如何取出多条数据? 现在有两张表,表一是users(用户表)表二是works(作品表) 一个用户可以有多个作品,查询后显示结果如下,请问怎么查询? 解决方案 inner join查出来,每条都带有作者信息,需要你自己合并成前台需要的数据结构 或者,先查出作者,然后ajax去请求每个作者的作品,然后填充 解决方案二: 用如下sql语句进行查询就可以了,但是要换成你具体数据表中的字段select user.name,user.sex,works.name,works.

hibernate全外连接-hibernate中在一对多关系中全外连接语句怎么写,求大神

问题描述 hibernate中在一对多关系中全外连接语句怎么写,求大神 Employee 类与 Department类是多对一关系,分别对应于表s_emp 和 s_dept表 其中s_emp表中外键 dept_id, Employee中有dept成员,Department中有Set集合 hibernate.hbm.xml都配置好了,不知道怎么写 全外连接语句 String hql="select E.id,D.id from Employee E full join Department D&q