首页 > 解决方案 > 休眠级联保存与 OneToOne 关系

问题描述

我有两个表用户

CREATE TABLE `users` (
`id` BIGINT NOT NULL,
PRIMARY KEY (`id`))

和推车

CREATE TABLE `carts` (
`id` BIGINT NOT NULL,
`user_id` BIGINT,
PRIMARY KEY (`id`))
ALTER TABLE `carts` ADD CONSTRAINT Cart_User_FK
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`);

我为他们创建实体

@Entity
@Table(name = "users")
public class User{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @OneToOne(cascade = CascadeType.ALL, mappedBy = "user")
    private Cart cart;
}

@Entity
@Table(name = "carts")
public class Cart{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "user_id")
    private User user;
}

我尝试将购物车实例设置为用户并保存用户

Cart cart = new Cart();
cartRepository.save(cart);
user.setCart(cart);
userRepository.save(user);

但休眠不更新购物车表

从 SimpleJpaRepository 扩展的存储库

有人可以解释一下如何更新相关对象吗?

标签: jpaormhibernate-mapping

解决方案


推荐阅读