第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

一對多關(guān)系的問題

一對多關(guān)系的問題

慕虎7371278 2023-03-31 16:41:38
我對一對多的關(guān)系有問題,我只想使用用戶 ID 我不想創(chuàng)建一個新的,我把我的代碼@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;我大搖大擺地明白了{(lán)  "element": "string",  "user": {    "email": "string",    "id": 0,    "life": "suspend",    "name": "string",    "password": "string"  }}我不想創(chuàng)建新用戶,用戶已經(jīng)創(chuàng)建,我只需要使用您的 ID 來引用它
查看完整描述

3 回答

?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗 獲得超4個贊

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


FavoriteDTO.java

public class FavoriteDTO implements Serializable {

    private long id;

    private String element;

    long userId;

//getters and setters

}

您的服務(wù)實施應(yīng)檢查用戶可用性,然后將其分配給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 

}


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

TA貢獻(xiàn)1775條經(jīng)驗 獲得超8個贊

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

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


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

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊

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


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


@ManyToOne(cascade = CascadeType.DETACH)

@JoinColumn(name = "user_fk")

User user;


查看完整回答
反對 回復(fù) 2023-03-31
  • 3 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號