一对多关系的问题

时间:2019-07-17 02:26:27

标签: java spring swagger-ui

我在一对多的关系中遇到问题,要关联,我只想使用用户ID,我不想创建一个新的ID,我放了我的代码

output.delete(0.0, END)             # Clear ouytout text area
output.insert('1.0', 'A message!')  # Display in text area

“我的收藏夹”是

if

大惊小怪我明白了

@PostMapping("/createFavorite")
    public ResponseEntity<Favorite> createFavorite(@RequestBody Favorite favorite) {

        return new ResponseEntity<Favorite>(userServiceImpl.createFavorite(favorite), HttpStatus.OK);
    }

我不想创建新用户, 用户已经创建,我只需要使用您的ID即可引用

3 个答案:

答案 0 :(得分:4)

您需要创建一个新用户或检索任何现有用户并在“收藏夹”对象中进行设置。如果存在favorite.user.id,则不会创建新用户。

即使您应该将Cascade设置为CascadeType.DETACH,也可以避免从收藏夹对象创建或更新User对象。如果favourite.user.id为null,而不是创建一个新的用户对象,它将抛出错误。

@ManyToOne(cascade = CascadeType.DETACH)
@JoinColumn(name = "user_fk")
User user;

答案 1 :(得分:2)

您需要检索您的现有用户,并将其作为收藏夹(user)对象放置(分配)。这样,它将起作用。

我不太清楚你的招摇规格。您是否使用某种json模式?

答案 2 :(得分:1)

您的实体结构很好。您必须从.dismiss()中检索用户并将其分配到UserRepository实体中。恕我直言,请介绍FavoriteDTO类。因此实体模型不会被公开。

FavoriteDTO.java

Favorite

您的服务实现应检查用户的可用性,然后将其分配给public class FavoriteDTO implements Serializable { private long id; private String element; long userId; //getters and setters } 实体。

ServiceImpl.java

Favorite

您的更新的swagger请求json如下

public void createFavorite(FavoriteDTO favoriteDTO) {
   Optional<User> optional = userRepository.findById(favoriteDTO.getUserId());
   if(optional.isPresent()) {
       Favorite favorite = new Favorite();

       favorite.setUser(optional.get());
       favoriteRepository.save(favorite);
   }
}