问题1:对多一级联保存,更新的问题
标准 jpa 写法如下:
@ManyToOne(fetch=FetchType.LAZY,cascade= {CascadeType.PERSIST,CascadeType.MERGE})
@JoinColumn(name="ORDER_ID")
注解,这里persist是级联保存,merge是级联合并(更新),
但是 我们在save many一方时,会报错
错误代码如下:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing:Order
解决方法:
⑴ 使用hibernate annotation
写法如下
@ManyToOne()
@Cascade(value={CascadeType.SAVE_UPDATE})
@JoinColumn(name="ORDER_ID")
⑵ 使用hibernate新的 保存 和 更新方法
session.persist(),session.merge()
问题2:一对多关联,删除一方,而多方不能删除.这时就需要在删除一方后,及时更新多方的外键.
解决方法:设置一对多的 一 方来维护关联关系.
@OneToMany
@JoinColumn(name="ORDER_ID")
去掉mapperby,加上joincolumn,指向多方表的外键.
(注意:此时多方同时也会维护关联关系)
分享到:
相关推荐
现在已经不用*.hbm.xml这种映射文件了,都是用Annotation(注解)方式来完成实体与表之间的映射关系,这样看起来比用xml文件来映射更具有可读性,自我感觉以后Hibernate Annotation的映射方式将代替hibernate 的*....
hibernate-annotations-3.4.0.GA hibernate-annotations-3.4.0.GA hibernate-annotations-3.4.0.GA
Hibernate Annotations API 中文文档 前言 1. 创建一个注解项目 1.1. 系统需求 1.2. 系统配置 2. 实体Bean 2.1. 简介 2.2. 用EJB3注解进行映射 2.2.1. 声明实体bean 2.2.1.1. 定义表(Table) 2.2.1.2. 乐观...
hibernate annotations 中文参考手册
Hibernate Annotations 中文版
webwork2.1.7 中文开发文档 Hibernate Annotations参考文档-3.20中文开发文档 Hibernate_3.2.0_Reference_zh_CN中文开发文档
hibernate annotations
hibernate 和hibernate_annotations(中文API)帮助文档。
hibernate annotations 3.4.0.GA API
Hibernate3.2 Annotations中文文档 Hibernate3.2 Annotations中文文档 Hibernate3.2 Annotations中文文档 网页格式
hibernate annotations 的中文帮助文档 可以帮您更好的学习hibernate 的注解配置
hibernate-annotations.jar
hibernate annotations 核心包,欢迎下载
使用注解Annotation时用的jar包。 包括: hibernate-commons-annotations-3.3.0.ga.jar hibernate-entitymanager.jar ejb3-persistence.jar hibernate-annotations.jar
NULL 博文链接:https://xiongjiajia.iteye.com/blog/1947270
hibernate-annotations-3.4.0
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...
Hibernate Annotations API英文版,CHM格式
hibernate-annotations-3.4.0.CR1中文电子书