栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用多余的列映射多对多关联表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用多余的列映射多对多关联表

由于SERVICE_USER表不是纯联接表,而是具有其他功能字段(已阻止),因此您必须将其映射为实体,并将User和Service之间的多对多关联分解为两个OneToMany关联:一个用户有多个UserService,一个服务有许多UserServices。

您尚未向我们展示最重要的部分:实体之间关系的映射和初始化(即您遇到问题的部分)。因此,我将向您展示它的外观。

如果使关系是双向的,则应该具有

class User {    @oneToMany(mappedBy = "user")    private Set<UserService> userServices = new HashSet<UserService>();}class UserService {    @ManyToOne    @JoinColumn(name = "user_id")    private User user;    @ManyToOne    @JoinColumn(name = "service_pre")    private Service service;    @Column(name = "blocked")    private boolean blocked;}class Service {    @oneToMany(mappedBy = "service")    private Set<UserService> userServices = new HashSet<UserService>();}

如果您不对关系进行任何级联,则必须坚持/保存所有实体。尽管仅必须初始化关系的拥有方(在此是UserService方),但是确保双方保持一致也是一种很好的做法。

User user = new User();Service service = new Service();UserService userService = new UserService();user.addUserService(userService);userService.setUser(user);service.addUserService(userService);userService.setService(service);session.save(user);session.save(service);session.save(userService);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/466998.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号