如何在Spring Data JPA中保留实体而不获取关联对象

时间:2017-09-17 01:17:32

标签: java spring hibernate spring-mvc spring-data-jpa

我们说我有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对象之前我不必获取用户对象?

1 个答案:

答案 0 :(得分:0)

您可以尝试创建User对象并在其中设置userId并将其设置在car对象中。

User existingUser = new User();
existingUser.setId(userId);
car.setUser(existingUser);
carRepository.save(car);