简体   繁体   English

无法更新多对多关系中的单个实体

[英]Cannot update a single entity in Many-to-Many relationship

I am currently making project which should have Many-To-Many relationship between groups and users.我目前正在制作应该在组和用户之间具有多对多关系的项目。 I should be able to update an user and add one.我应该能够更新用户并添加一个。 I have no troubles with adding an user, it gets saved properly.添加用户我没有问题,它被正确保存。 However, when I try to update user, it gives an error that definitely has something to do with that hibernate tries to save groups information.但是,当我尝试更新用户时,它给出的错误肯定与休眠尝试保存组信息有关。 Here is my code.这是我的代码。

User Entity用户实体

@Entity
@Table(name = "user")
public class User {
    @Id
    @Column(name = "email")
    private String email;

    @Column(name = "firstname")
    private String name;

    @Column(name = "lastname")
    private String surname;

    @Column(name = "age")
    private int age;

    @Column(name = "gender")
    private String gender;

    @ManyToMany
    @JoinTable(
            name = "user_group"
            , joinColumns = @JoinColumn(name = "email")
            , inverseJoinColumns = @JoinColumn(name = "group_id")
    )

Group entity集团实体

@Entity
@Table(name = "category")
public class Group {
  @Id
  @Column(name = "group_name")
  private String name;

  @Column(name = "description")
  private String description;

  @ManyToMany(mappedBy = "groupList")
  private List<User> userList = new ArrayList<User>();

Controller save method控制器保存方法

@PostMapping("/addUser")
public String addUser(@ModelAttribute("user") User user) {
    service.saveUser(user);
    return "redirect:/allUsers";
}

Service save method服务保存方法

@Override
@Transactional
public void saveUser(User user) {
    userDAO.saveUser(user);
}

DAO save method DAO保存方法

@Override
public void saveUser(User user) {
    entityManager.merge(user);
}

java.sql.SQLSyntaxErrorException: Unknown column 'group1_.description' in 'field list java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“group1_.description”

The problem was that I altered my column names in DB but forgot to update it in Entity class.问题是我在 DB 中更改了列名,但忘记在 Entity 类中更新它。 Got to be careful next time:)下次要小心点:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM