我有一個域物體用戶,因為我需要為競爭和非競爭游戲的每個用戶創建 2 組單獨的統計資訊,它與 UserStats 具有 OneToMany 關系,并且每個用戶應該在 List userStats 物件中包含 2 個 UserStat 物件。
但是,當我呼叫 userRepo.findAllBy(SomeCondition) 時,回傳的 List 包含 User 物件,但那些 User 物件不包含 UserStat 物件?
用戶等級:
@Entity(name = "User")
@Table(name = "user")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "username", unique = true)
private String username;
@Column(name = "password")
private String password;
private String name;
private String email;
private String location;
@JsonIgnore
@OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
private List<UserStats> userStats;
}
用戶統計類:
@Entity()
@Table(name = "userStats")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class UserStats {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long userStatsId;
private Integer victories;
private Integer draws;
private Integer defeats;
private boolean isLeagueUserStats;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
private User user;
}
用戶服務注冊方法:
public void signUpUser(User user) {
user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
User savedUser = userRepository.save(user);
List<UserStats> userStatsList = new ArrayList<>();
UserStats userStats = new UserStats(0, 0, 0, false, savedUser);
UserStats leagueUserStats = new UserStats(0, 0, 0, true, savedUser);
userStatsRepository.save(userStats);
userStatsRepository.save(leagueUserStats);
userStatsList.add(userStats);
userStatsList.add(leagueUserStats);
user.setUserStats(userStatsList);
User savedUser2 = userRepository.save(user);
}
我怎樣才能做到這一點,以便在我保存用戶物體時它也保存它包含的 UserStats?當您從包含 userStats 串列的存盤庫中檢索用戶物件時,我該如何做到這一點?
謝謝
uj5u.com熱心網友回復:
這可能是因為您需要添加級聯才能讓他在級聯中保存
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
而且,我不確定您是否有意使用 LAZY fetchType,但如果在任何時候您在加載某些資料時遇到問題(我的意思是,如果它給您帶來的只是空資料),可能是因為它,在在這種情況下,您將不得不使用 EAGER 而不是 LAZY
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/414184.html
標籤:
