亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一對多關系的問題

一對多關系的問題

慕虎7371278 2023-03-31 16:41:38
我對一對多的關系有問題,我只想使用用戶 ID 我不想創建一個新的,我把我的代碼@PostMapping("/createFavorite")    public ResponseEntity<Favorite> createFavorite(@RequestBody Favorite favorite) {        return new ResponseEntity<Favorite>(userServiceImpl.createFavorite(favorite), HttpStatus.OK);    }我最喜歡的實體是public class Favorite implements Serializable {    @Id    @GeneratedValue(strategy = GenerationType.AUTO)    private long id;    @Column(name = "element")    private String element;    @ManyToOne    @JoinColumn(name = "user_fk")    User user;我大搖大擺地明白了{  "element": "string",  "user": {    "email": "string",    "id": 0,    "life": "suspend",    "name": "string",    "password": "string"  }}我不想創建新用戶,用戶已經創建,我只需要使用您的 ID 來引用它
查看完整描述

3 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

您的實體結構很好。您必須從實體中檢索用戶UserRepository并將其分配給實體Favorite。恕我直言,請介紹一下 FavoriteDTO 類。所以實體模型不會暴露。


FavoriteDTO.java

public class FavoriteDTO implements Serializable {

    private long id;

    private String element;

    long userId;

//getters and setters

}

您的服務實施應檢查用戶可用性,然后將其分配給Favorite實體。


ServiceImpl.java

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);

   }

}

您更新后的 swagger 請求 json 如下所示


{

  "element": "string",

  "userId": long 

}


查看完整回答
反對 回復 2023-03-31
?
www說

TA貢獻1775條經驗 獲得超8個贊

您需要檢索現有用戶并將其作為 favorite.user 對象放在那里(分配)。這樣,它將起作用。

我不太清楚你的招搖規范。你在使用某種 json 模式嗎?


查看完整回答
反對 回復 2023-03-31
?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

您需要創建一個新用戶或檢索任何現有用戶并設置收藏夾對象。如果存在 favorite.user.id,則不會創建新用戶。


甚至您應該將 Cascade 設置為 CascadeType.DETACH 以避免從收藏對象創建或更新用戶對象。如果 favorite.user.id 為 null 而不是創建新的用戶對象,它將拋出錯誤。


@ManyToOne(cascade = CascadeType.DETACH)

@JoinColumn(name = "user_fk")

User user;


查看完整回答
反對 回復 2023-03-31
  • 3 回答
  • 0 關注
  • 148 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號