gpt4 book ai didi

java - 在 Java 中更新 ManyToMany jointable

转载 作者:行者123 更新时间:2023-12-04 00:33:42 26 4
gpt4 key购买 nike

我使用 netbeans 生成实体和门面。下面是一个有效/更新的例子:

我有 2 个表,它们由一个连接表连接在一起:

用户

主键:用户ID

类别

主键:类别ID

用户类别

复合PK:userID |类别ID(没有其他列)

更新连接表的方法,处理两边的关系:

    //set up user Categories
List<Category> categoryList = new ArrayList<Category>();

//get all the current categories for the current user
categoryList.addAll(user.getCategoryList());

//clear out user for that type (to reset)
for(Category c : categoryList){
tempUserList.clear();
tempUserList = c.getUserList();
tempUserList.remove(user);
c.setUserList(tempUserList);
categoryFacade.edit(c);
}

categoryList.clear();
//where selectedCategoryListString is a list of category names
for(String s : selectedCategoryListString){
categoryList.add(categoryFacade.findByCategoryName(s));
}

for(Category c : categoryList){
tempUserList.clear();
tempUserList = c.getUserList();
tempUserList.add(user);
c.setUserList(tempUserList);
categoryFacade.edit(c);
}
user.setCategoryList(categoryList);
userFacade.edit(user);

上面的工作,它照顾了关系的双方。我被困的地方在下面。由于额外的“年”列,“技能”没有方法“.getUserList()”。相反,它有一个“.getUserSkillList()”。我不知道应该如何像上面那样更新连接表。我们可以假设“年”列每次都设置为“”(空白)。

下面:有问题的表/关系:

用户

用户ID

技能

技能编号

用户技能

用户ID |技能ID |年

重要的是:用户有一个用户 ID。 Skill有一个skillID,UserSkill有一个由userID和skillID以及其他列组成的复合主键;年。

最佳答案

如果您使用的是 hibernate,只需在 User 类的 UserSkill 属性上添加 Cascade.UPDATE 即可解决该问题。

但是,由于您没有使用 hibernate ,您可以手动完成它。更新 User 时,检索与其相关的那些 UserSkills 并更新它们。

如果您在这样做时遇到任何具体问题,请告诉我更新我的答案

关于java - 在 Java 中更新 ManyToMany jointable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15846686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com