`

Hibernate delete-orphan

 
阅读更多

 

在Hibernate的一对多中,删除主记录的时候需要级联删除子记录,此时会在一的一方设置cascade='all,delete-orphan',

 

但是下面这段代码将不会删除子记录,只会把外间设置为null:

 

UserInfo userInfo = new UserInfo();
userInfo.setId(1);

Email email = new Email();
email.setAccount("test@test.com");

userInfo.getEmails().add(email);

session.update(userInfo);

 

需要先把UserInfo关联的所有Email对象获取出来,并设置为删除标识(从集合中删除Email对象,Hibernate在提交事务

 

时即会判断需要删除的记录)

 

UserInfo userInfo = (UserInfo)session.get(UserInfo.class, 1);

userInfo.getEmails().clear();

Email email = new Email();
email.setAccount("test@test.com");
			
userInfo.getEmails().add(email);

session.update(userInfo);

 

上面这段代码在更新时会删除UserInfo已置为删除标识的Email记录。

分享到:
评论

相关推荐

    hibernate_配置cascade_及all-delete-orphan.doc

    \hibernate_配置cascade_及all-delete-orphan.doc

    sensor21-orphan-ieee-tmc

    sensor21-orphan-ieee-tmc

    remove-orphan-vertices:移除单纯复形中的孤立顶点

    安装$ npm install remove-orphan-vertices用法 var removeOrphanVertices = require ( 'remove-orphan-vertices' ) ;var mesh = { cells : [ [ 0 , 2 , 3 ] ] , positions : [ [ 0 , 0 , 0 ] , [ 1 , 0 , 0 ] , // ...

    hermione-orphan-screenshots:赫敏插件,用于跟踪“丢失”屏幕截图的存在

    $ npm i --save-dev hermione-orphan-screenshots 使用 有必要在hermione配置中连接插件: module . exports = { // ... plugins : { 'hermione-orphan-screenshots' : { enabled : true , // default true ...

    cloudfoundry-orphan-space-removal

    cloudfoundry-orphan-space-removal 发送电子邮件通知空组织的所有者(其中应用程序或服务的数量或为零)。 这个应用程序使用了 pom 文件中引用的一个分支,使用了很棒的工具。 先决条件 您必须将PCF_USERNAME设置...

    gem-orphan:一个用于显示孤立宝石的 RubyGems 插件

    宝石孤儿 gem-orphan 是 'orphan' 子命令的简单实现。 它会找到没有其他 gem 依赖的 gem 并列出这些 gem。

    example-rebase-orphan-branch

    重新定位一个孤立的分支 注意事项 使用 rebase 时,您会重写历史记录。 因为每个重新提交的 SHA 都已更改,所以您现在与源和其他任何人的分支不同步。 如果在使 repo 可用之前已在主服务器上完成此操作,则应该没有...

    hibernate总结

    f) All-delete-orphan 父子关系的表设为此值,表示,当删除一个父对象时,将这个set容器中的子对象全部删除 2. Inverse 只能在set映射时使用;它的作用是:是否根据set容器中存放的对象,产生update语句,维护关系...

    pkg-orphan-开源

    一个FreeBSD控制台实用程序,它查找,列出并可能删除未引用的软件包。 它使用户可以选择要删除的软件包以及要保留的软件包。 它维护一个保留列表文件,因此先前保留的软件包将被自动跳过。

    Lazy loading - eager loading

    <set name="OrderLines" cascade="all-delete-orphan" > <one-to-many class="OrderLine"/> </hibernate-mapping>Analogous you can implement the mappings for the Customer entity ...

    jdbc基础和参考

    many-to-one:标签中对于cascade的取值delete,delete-orphan,all-delete-orphan(只用unique属性值不为true不能出现)慎用 cascade:级联属性 none:不做任何级联操作 save-update:对当前对象执行save,update, ...

    orphan-tables:WordPress MultiSite删除子站点删除后剩余的数据库表

    wp-cli help orphan-tables list_drop_renamed 显示有关list_drop_renamed子命令的帮助 wp-cli help orphan-tables [sub-command] 显示此子命令的帮助 获取信息 命令 帮助 wp-cli orphan-tables list_drop_renamed...

    ember-cli-github-pages:轻松管理您的ember-cli插件的gh页

    ember-cli-github-pages 如果您需要快速介绍自己的插件实例,这就是适合您的插件! 该插件提供了新命令,可以帮助您管理插件的gh-pages分支。...git checkout --orphan gh-pages && rm -rf ` bash -c " ls -a |

    indy-frontend

    $ git checkout --orphan master # New branch without history $ npm install $ echo REACT_APP_API_HOST=https://your-url-here.org/ > .env $ npm start 为了在API服务器下作为插件运行 $ npm link $ npm run ...

    user-pal:基于hapi-pal的用户样板

    用户朋友 包含电池的版本 特征 支援hapi v19 + 通过使用将整个hapi插件API映射到文件和文件夹中,提供了构建插件的约定。 ...$ git checkout --orphan master # New branch without history $ npm

    nakashimas.github.io:我的网站通过GitHub Pages

    Nakashimas.github.io ...git checkout --orphan gh-pages git branch git reset --hard git commit --allow-empty -m " initialize gh-pages " git push -u origin gh-pages git checkout master rm -rf

    舵图

    舵图此仓库使用托管舵图设置一个GitHub存储库,其中包含带有您的Helm图表的目录(例如:/ charts) 一个名为gh-pages的GitHub分支用于存储发布的图表git checkout --orphan gh-pagesgit rm -rf .git commit -m " ...

    09_orphan.c

    孤儿进程与僵尸进程相对,程序执行过程中,父进程先结束,子进程仍在运行的程序

    docker:码头工人的例子

    DOCKER示例 docker && docker撰写示例 安装 文件夹结构 ...码头工人(克隆此仓库) 项目(此文件夹的Web服务器根Dis分配) any_other_folder(只需编辑nginx.config文件以... docker-compose up --build --remove-orphan

Global site tag (gtag.js) - Google Analytics