我们说我有2个实体
@Entity
@Table(name = "users")
public class User implements Serializable {
private User() {
}
... other fields omitted ...
@OneToMany(mappedBy = "user")
private List<Car> cars;
}
和
@Entity
@Table(name = "cars")
public class Car implements Serializable {
public Car() {
}
... Other fields omitted ...
@Column(name = "id")
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@JsonIgnore
@JoinColumn(name = "user_id")
@ManyToOne
private User user;
}
现在,每当我在CarRepository上调用save时,它都要求我在用户字段上有一个User对象。这样,我仍然需要在我的UserRepository中调用findById方法,如
...
car.setUser(userRepository.findById(userId));
carRepository.save(car);
...
Spring Data JPA是否有办法使用userId进行保存,在持久化car对象之前我不必获取用户对象?
答案 0 :(得分:0)
您可以尝试创建User
对象并在其中设置userId
并将其设置在car
对象中。
User existingUser = new User();
existingUser.setId(userId);
car.setUser(existingUser);
carRepository.save(car);