servlet多重映射_关于多重映射问题,很奇怪
发表时间:2004-03-29
我说说我的情况吧!
我的表是多对多关联!
schema如下
drop table if exists course_employee_link
drop table if exists employee
drop table if exists course
create table course_employee_link (
employee_id BIGINT not null,
course_id BIGINT not null,
primary key (course_id, employee_id)
)
create table employee (
employee_id BIGINT not null,
email VARCHAR(30),
password VARCHAR(30),
user_name VARCHAR(30),
primary key (employee_id)
)
create table course (
course_id BIGINT not null,
course_description VARCHAR(255),
course_name VARCHAR(30),
quantity INTEGER,
sign_up_quantity INTEGER,
primary key (course_id)
)
alter table course_employee_link add index (course_id), add constraint FKA34265C7575ED7BF foreign key (course_id) references course (course_id)
alter table course_employee_link add index (employee_id), add constraint FKA34265C7367BE44C foreign key (employee_id) references employee (employee_id)
具体的处理函数:
public ActionForward performSignIn(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
CourseForm courseForm = (CourseForm) form;
//get session
HttpSession httpSession = request.getSession();
//get employee
Employee employee =
(Employee) httpSession.getAttribute(IntelConstants.EMPLOYEE_KEY);
if (null == employee) {
return mapping.findForward(IntelConstants.GLOBAL_FORWARD_LOGON);
} else {
//get course
Course course =
getControl().findByPrimaryKey(courseForm.getCourseId());//getControl() return a dao object
//get employee set
Set employees = course.getEmployees();
//add employee to set
employees.add(employee);
course.setSignUpQuantity(employees.size());
//update course
if (getControl().updateCourse(course)) {
transferProperties(courseForm, course, true);
return this.performDetail(
mapping,
courseForm,
request,
response);
} else {
return mapping.findForward(IntelConstants.GLOBAL_ERROR);
}
}
}
具体的错误信息:
net.sf.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: 2, of class: com.edynasty.intel.employee.jdo.Employee
at net.sf.hibernate.impl.SessionImpl.checkUniqueness(SessionImpl.java:1642)
at net.sf.hibernate.impl.SessionImpl.doUpdateMutable(SessionImpl.java:1414)
at net.sf.hibernate.impl.SessionImpl.doUpdate(SessionImpl.java:1440)
at net.sf.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:1364)
at net.sf.hibernate.engine.Cascades$4.cascade(Cascades.java:114)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:436)
at net.sf.hibernate.engine.Cascades.cascadeCollection(Cascades.java:526)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:452)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:503)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:482)
at net.sf.hibernate.impl.SessionImpl.doUpdate(SessionImpl.java:1445)
at net.sf.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:1364)
at net.sf.hibernate.engine.Cascades$4.cascade(Cascades.java:114)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:436)
at net.sf.hibernate.engine.Cascades.cascadeCollection(Cascades.java:526)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:452)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:503)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:482)
at net.sf.hibernate.impl.SessionImpl.doUpdate(SessionImpl.java:1445)
at net.sf.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:1364)
at net.sf.hibernate.engine.Cascades$4.cascade(Cascades.java:114)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:436)
at net.sf.hibernate.engine.Cascades.cascadeCollection(Cascades.java:526)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:452)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:503)
at net.sf.hibernate.engine.Cascades.cascade(Cascades.java:482)
at net.sf.hibernate.impl.SessionImpl.doUpdate(SessionImpl.java:1445)
at net.sf.hibernate.impl.SessionImpl.update(SessionImpl.java:1326)
at com.edynasty.intel.course.dao.impl.CourseDAOImpl.updateCourse(CourseDAOImpl.java:50)
at com.edynasty.intel.course.control.CourseControl.updateCourse(CourseControl.java:62)
at com.edynasty.intel.course.action.CourseAction.performSignIn(CourseAction.java:73)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at com.edynasty.filter.CompressionFilter.doFilter(CompressionFilter.java:80)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:184)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:567)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:833)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:732)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:619)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:688)
at java.lang.Thread.run(Thread.java:534)
servlet多重映射_关于多重映射问题,很奇怪相关推荐
- 女朋友天天气我怎么办_关于我的天气很奇怪
女朋友天天气我怎么办 带有扭曲的天气应用 (A Weather App with a Twist) Is My Weather Weird?™ is a weather app with a twis ...
- 使用枚举映射_用EnumMaps映射枚举键
使用枚举映射 这是一种在JDK中存在很长时间的类型,当我们要定义以枚举类型作为键的映射时,这种类型会派上用场: EnumMap是一种特殊的Map . 我们将为给定的枚举创建一个映射: public e ...
- hibernate关联映射_具有关联映射的Hibernate Composite ID
hibernate关联映射 最近,我们面临着带有复合id字段的Hibernate关联映射的棘手情况. 我们需要与一对一和多对一进行双向关联.我们的拖曳表是" REPORT"和&qu ...
- xml对象映射_将对象映射到多个XML模式–天气示例
xml对象映射 我已经在EclipseLink JAXB(MOXy)的@XmlPath和外部绑定文件扩展中撰写了以前的文章. 在本文中,我将通过将单个对象模型映射到两个不同的XML模式来演示这些扩展的 ...
- xbox手柄映射_如何重新映射您的Xbox One控制器的按钮
xbox手柄映射 Microsoft's Xbox One allows you to remap the buttons on its controller. This feature was or ...
- mysql创建触发器难题_[]MYSQL创建触发器遇到很奇怪的有关问题
[求助]mysql创建触发器遇到很奇怪的问题. 今天遇到一个很奇怪的问题,是关于创建触发器的.创建触发器代码如下 SQL code create trigger trigger_t_test_U af ...
- 两个分布的特征映射_跨语言分布表示学习方法概述
分布表示(distributed representation)与深度神经网络(deep neural network)极大地推动了近几年自然语言处理研究的发展.我们知道,分布表示指的是对于一个客观描 ...
- 关联映射 一对多 实验心得_使用影响映射来帮助您的团队进行实验
关联映射 一对多 实验心得 影响映射是一种在领导者和项目团队之间建立共识的技术. 影响图以引人入胜的研讨会形式提供,是以鼓励创新的方式启动工作流的理想方式. Gojko Adzic首次在2011年的小 ...
- 【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)
[SSH进阶之路]Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库. [SSH进阶之路]Hibernate搭建开发环境+简单实例 ...
最新文章
- Android模仿iPhone View旋转刷新数据动画详解
- mongodb数据合并设计_MongoDB:如何将来自多个集合的数据合并成一个.?
- linux内存管理基本概念
- mysql 本周函数_【转】MySQL时间函数的使用:查询本周、下周、本月、下个月份的数据...
- python 程序1【登录接口】
- 整数判重、大整数Hash
- 计算机应用基础 制作表格说课稿,职业教育:计算机应用基础类一等奖作品《Premiere视频制作初体验》说课稿.docx...
- 暖通中级工程师计算机考试题库,暖通工程师试题(含答案)
- 北理计算机未来,2021北理计算机专硕889考研经验分享
- SQLite入门与分析(四)---Page Cache之事务处理(1)
- python中继承和组合的区别_Py修行路 python基础 (十五)面向对象编程 继承 组合 接口和抽象类...
- 给工具箱中的控件添加图标
- 倾斜摄影相机焦距与实景三维模型效果的关系
- 程序员如何使正确卖出自己的程序但是不想被人知道代码的具体实现?
- 前端面试题总结(转载)
- 使用SNMP检查服务器中运行的进程信息
- Photoshop学习笔记之色彩学的概念与常识
- 测试用例设计方法_错误推测法(游戏向)
- 【状语从句练习题】since 的时态问题
- 远程计算机如果关机咋办,远程关机的详细步骤有哪些?向日葵怎么远程关机?...
热门文章
- sklearn数据集操作API
- 计算卷积神经网络中参数量
- 【pytorch】torch 查看GPU
- 【收藏】批量导出docker镜像
- java arrays.equals_Java Arrays类的常见使用
- springboot 按钮权限验证_SpringBoot中实现Shiro控制ThymeLeaf界面按钮级权限控制
- ajax jq 图片上传请求头_全面分析前端的网络请求方式:Ajax ,jQuery ,axios,fetch
- Python 为啥不建议使用 thread模块?
- 华为性格面试的破解方法
- python polygon函数_Python 人脸识别就多简单,看这个就够了!