`
kyvin
  • 浏览: 32811 次
  • 性别: Icon_minigender_1
  • 来自: 福州
文章分类
社区版块
存档分类
最新评论

多对一双向关联删除子类关于临时对象的问题

阅读更多
最近我在项目中加入多对一双向关联的做法 因为以前没涉及过hibernate级联删除问题 我建立了几个多对一关联的双向关联,下面是我的代码:

Customer.hbm.xml
...省略其它Customer属性
		<set name="msges" inverse="true" cascade="all">
		<key column="RecCustomer_id"/>
		<one-to-many class="EricMsg"/>
		</set>
		<set name="msgess" inverse="true" cascade="all">
		<key column="SendCustomer_id"/>
		<one-to-many class="EricMsg"/>
		</set>

		<set name="ericpingluns" lazy="true" inverse="true" cascade="all">
		<key column="EricPingLun_id"/>
		<one-to-many class="EricPingLun"/>
		</set>
下面还有几个同样的set属性... 

Customer.java
...
	  private Set ericNewses=new HashSet(); //关系 1:n
	  private Set ericpingluns=new HashSet();//关系 1:n

EricMsg.java
...
	private Customer sendcustomer;
	private Customer reccustomer;

EricMsg.hbm.xml
        <many-to-one 
        name="sendcustomer" 
        column="SendCustomer_id" 
        class="Customer"/>

        
        <many-to-one name="reccustomer" 
        column="RecCustomer_id" 
        class="Customer"/>

现在Customer登录后,察看到自己的消息,察看完毕后,想删除掉Ericmsg.可是总是删除的时候出现
deleted object would be re-saved by cascade 

有的时候也会出现说
session would be used or session would be closed

我的 删除 Action中只是把ID传过去 然后利用接口的
	public void deleteEricMsg(EricMsg ericmsg) throws ServicesException {
	    this.delete(ericmsg);	
	}

我觉得主要的把我获取留言的类贴出来,我自己觉得是这里出了问题
CheckCustomerMsgAction
	private Customer customer;
	private Set ericmsges=new HashSet();
	public String execute()throws Exception{

			customer=super.getCustomer();
			if(this.customer!=null){
				   if(customer.getMsges().size()>0){
					   ericmsges=customer.getMsges();
					   return SUCCESS;
				   }
				return INPUT;
			}
			return INPUT;		
	}

我改了很多 可是依旧无法解决这个问题,我想达到的是能删除Msg 用户再次Check后不能再看到那条消息,我现在却依旧可以看到msg这个临时对象
分享到:
评论

相关推荐

    java面试题大全-葵花宝典-出现率比较高的面试题

    - 面向对象的域模型与关系型数据库的不匹配,如继承、多对多关联、双向关联等。ORM框架如Hibernate通过映射转换解决这些问题。 6. **Session的find()方法与Query接口**: - **find()**:简单的HQL查询,不支持...

    javaweb方向面试宝典

    - ORM(Object-Relational Mapping)解决了面向对象模型和关系数据库之间的转换问题,如继承、多对多关联、双向关联等。 6. **继承关系的映射**: - 单表继承:每个具体类对应一个表,包含所有属性。 - 多表继承...

    大全面试资源,选择题,笔试题,技术等等.doc

    - ORM(Object-Relational Mapping)处理对象模型和关系模型之间的差异,如继承、多对多、双向关联等。 6. **继承关系映射**: - **单表继承**:每个子类对应一个表,包含自身及父类属性。 - **根类表继承**:...

    Hibernate常见面试题

    - 继承关系、多对多关联、双向关联等概念在两种模型间转换时会遇到困难。 - 精粒度模型与粗粒度模型的不同需求也导致了不匹配。 ### 映射继承关系的三种方式 1. **每个具体类对应一张表**:表中包括父类和子类的...

    UML 继承,实现,依赖,关联,聚合

    它是比较弱的一种关联形式,通常涉及到短暂的交互或者临时性的使用。UML中,依赖用带箭头的虚线表示。这种关系强调了类之间的动态联系,有助于识别和减少耦合。 4. **关联(Association)**: 关联是类与类之间的...

    重构-改善既有代码的设计.pdf

    - **转换单向关联为双向(Change Unidirectional Association to Bidirectional)**:在两个对象之间建立一个完整的双向关联。 - **封装集合(Encapsulate Collection)**:将一个公开的集合变为私有,并提供相应...

    java面试题大全-葵花宝典

    - **迫切左外连接检索**:适用于需要立即获取关联数据的情况,特别是在一对一或多对一关联中。 **5. ORM解决的不匹配问题** - **数据模型差异**:对象模型通常具有继承、多态等特性,而关系模型则通过表格表示数据...

    重构-改善既有代码的设计简体中文高清文字pdf

    - **应用场景**:当多个对象依赖于同一份数据时,为了避免并发修改问题,可以考虑为每个对象提供一份数据副本。 - **操作步骤**:分析数据共享的必要性;对于那些需要频繁访问且可能被多个对象修改的数据,可以为每...

    重构改善既有代码的设计中文版

    - 描述:隐藏一个对象对另一个对象的委托。 - 场景:提高系统的内聚性和降低耦合度。 23. **Hide Method(隐藏方法)** - 描述:在子类中隐藏父类的方法。 - 场景:避免方法名冲突。 24. **Inline Class...

    重构:改善既有代码的设计(中文版)

    - **改变单向关联为双向** (`ChangeUnidirectionalAssociationtoBidirectional`):通过双向关联增加对象间的信息传递。 - **改变实值对象为引用对象** (`ChangeValuetoReference`):将简单的数据类型转换为对象...

    UML.pdf

    **UML(统一建模语言)**是一种标准的图形建模语言,用于软件工程领域,特别是在面向对象设计中。它提供了多种图表来帮助系统分析师、设计师和开发人员可视化、理解和交流系统的不同方面。UML包括九种关系和九种图表...

    重构-改善既有代码的设计(中文版)

    - **Change Bidirectional Association to Unidirectional (将双向关联改为单向):**简化对象之间的关系。 - **Change Reference to Value (将引用对象改为实值对象):**改变对象存储方式,提高性能。 - **Change ...

    C讲义继承多态PPT课件.pptx

    - **双向关联**:两个类互相了解对方的存在,并且可以相互访问。例如,订单属于某个客户,同时客户也可以访问到与之相关的订单信息。 ### 四、示例练习 #### 练习1: 实现Student和Teacher类 ```csharp public ...

    Java面试题(Java人求职面试宝典)

    - **EntityBean**:表示持久化的业务对象,与数据库关联,实现数据存储和检索。 以上知识点是Java面试中常见的问题,理解和掌握这些概念对于成为一名合格的Java开发者至关重要。在面试中,能够熟练地讨论和应用...

    UML类图与类的关系详解

    - **示例**:在示例中,一个割接通知可以关联多个故障单,这种关系可以通过多重性表示,例如`0..*`。 ### 实例分析 根据给定的示例,我们可以进一步了解各种关系的实际应用场景: 1. **通知分类**:通知分为一般...

    JAVA 面试题,内容很全面

    - **LinkedList** 使用双向链表,插入和删除速度快,但按索引访问慢,因为需要遍历链表。 8. **EJB(Enterprise JavaBeans)**: - EJB是Java EE的一部分,用于构建分布式企业级应用。 - **SessionBean** 代表...

    2021-2022计算机二级等级考试试题及答案No.4793.docx

    19. ListIterator:这是Java中Iterator的一个子类,支持双向遍历。 20. SQL查询类型:SQL查询可以创建各种类型,包括选择、追加、更新和删除等。 21. JDBC异常:SQLException是JDBC编程中常见的异常类型,通常与...

    Java面试宝典

    因为`private`方法在子类中是不可见的,而`static`方法与类相关联,与特定的对象无关。 5. **方法覆盖(Overriding)与方法重载(Overloading)** - **方法覆盖(Overriding)**: 在子类中重新定义父类的方法,要求方法...

Global site tag (gtag.js) - Google Analytics