惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Palo Alto Networks Blog
P
Proofpoint News Feed
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
罗磊的独立博客
J
Java Code Geeks
月光博客
月光博客
F
Full Disclosure
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
U
Unit 42
WordPress大学
WordPress大学
A
About on SuperTechFans
C
Cyber Attacks, Cyber Crime and Cyber Security
SecWiki News
SecWiki News
Security Latest
Security Latest
C
Check Point Blog
C
CERT Recently Published Vulnerability Notes
小众软件
小众软件
I
InfoQ
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
V
Visual Studio Blog
博客园_首页
NISL@THU
NISL@THU
I
Intezer
Spread Privacy
Spread Privacy
AWS News Blog
AWS News Blog
The Register - Security
The Register - Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Latest news
Latest news
Project Zero
Project Zero
博客园 - 叶小钗
C
Cybersecurity and Infrastructure Security Agency CISA
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy International News Feed
博客园 - 【当耐特】
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threat Research - Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
V
Vulnerabilities – Threatpost
博客园 - 司徒正美
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
雷峰网
雷峰网

博客园 - yiling

Eclipse 12大使用技巧 Hibernate 缓存的使用 Quartz应用 Solaris9下安装Oracle10g详细过程(转) Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream - yiling 使用JOX实现JavaBean和XML之间的转化 java读取property文件 db2常用命令 ant中利用macrodef来定义可重用的task java查看文件的创建时间 - yiling - 博客园 [转]Oracle exp imp sybase备份服务(backup server)不能启动的处理方法 SQL*PLUS环境输入'&字符'的方法 DB2 Catalog Hibernate 一些疑点(转的文章,还不错) Ajax客户端与伺服端之间,使用XML作为数据传送 从找实习的过程中发现了自己的弱点 (转)CAD二次开发简介 WID实施过程中的常见问题
hibernate如何设置一对多cascade
yiling · 2009-02-21 · via 博客园 - yiling

(转)hibernate如何设置一对多cascade

关键字: (转)hibernate如何设置一对多cascade

一对多的cascade的问题
两张表 一张Orders表 一张Orderitem表
我是这样设置的关系:
Orders.hbm.xml:

        lazy="false"
        inverse="false"
        cascade="all" >
        <key column="order_id"></key>
        <one-to-many class="hibernate.Orderitem"></one-to-many>

Orderitem.hbm.xml:
<many-to-one></many-to-one>
        name="orders"
        class="hibernate.Orders"
        cascade="all"
        outer-join="false"
        update="false"
        insert="false"
        column="order_id"
        not-null="true"/>

当cascade设置为all时 保存和更新数据没问题
假设Orders表中有一行数据 Orderitem表中有与其相关联的两行数据 id分别为1和2
当只需要删除id为1的那行数据 其他数据不需要修改时
因为我cascade设置为all
所以会把Orders表中那一行数据也删除

如果我把cascade设置为save-update 就会报这样的错
deleted object would be re-saved by cascade (remove deleted object from associations): 2, of class: hibernate.Orderitem

如果我把cascade设置为delete 又会把2个表中所有的数据全部删除
并且保存和更新的时候不会级联保存或更新

我想达到的效果是当保存和更新的时候能够级联同步保存或更新
当只要删除Orderitem表中一行数据的时候 并不删除与他关联的Orders表中对应的数据

这里到底要如何设置啊?
或者如何编写删除的代码啊?

在删除的方法中加入这样几句代码就可以了

Orders od=(Orders)session.load(Orders.class,item.getOrderId());
od.getOrderItems().remove(item);

这样可以与要删除的数据解除关系