本站消息

站长简介/公众号


站长简介绍:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群.欢迎关注我的微信公众号:程序员总部,程序员的家,探索程序员的人生之路!分享IT最新技术,关注行业最新动向,让你永不落伍。了解同行们的工资,生活工作中的酸甜苦辣,谋求程序员的最终出路!

  价值13000svip视频教程,java大神匠心打造,零基础java开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

双向映射做对了吗?

发布于2022-01-22 22:54     阅读(170)     评论(0)     点赞(27)     收藏(4)


有人可以告诉我这是否是进行双向映射的正确方法吗?

class User {
    @OneToMany(cascade=CascadeType.ALL, mappedBy="user")
    private List<item> items;
}


class Item {
    @ManyToOne
    private User user;
}

现在,如果我删除一个项目,我不希望删除该用户。如果我删除一个用户,我希望删除它的关联项目,因为它对用户来说是唯一的。

还有一个问题:如果我创建一个项目,我会:

User user = new User();
Item item = new Item();

user.getItems().add(item);
item.setUser(user);
persist(item);

我是否必须将项目设置为用户,反之亦然设置项目?


解决方案


  1. 是的,您的关系/映射已正确注释。删除一个Item不会删除其关联的User. 删除 aUser将删除Item与该用户关联的所有内容。

  2. 您不需要自己双向链接它们(尽管这样做没有害处),至少在获取存储在数据库中的正确信息方面不需要。请注意,当数据库操作从 级联UserItem反之亦然)时,您可能需要调用不是. 这会自动持久化,只要你把它添加到列表中persist(user)persist(item)itemuser

站长简介:高级工程师,爱好交友,无偿辅导python和前端,技术交流,面试指导,找工作指导,瞎聊都可加我微信i88811i哈,欢迎欢迎!也欢迎加入程序员交流群,专属程序员的圈子,加我微信拉你进群.
欢迎关注我的公众号:程序员总部,关注公众号回复java,免费领取 全套java视频教程,关注公众号回复java充值+你的账号,免费为您充值1000积分



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/377048/07fd9d6f71885dbe2405/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)