Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa Hibernate级联存储与OneToOne关系_Jpa_Orm_Hibernate Mapping - Fatal编程技术网

Jpa Hibernate级联存储与OneToOne关系

Jpa Hibernate级联存储与OneToOne关系,jpa,orm,hibernate-mapping,Jpa,Orm,Hibernate Mapping,我有两张桌子 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

我有两张桌子

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;
}

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

Cart cart = new Cart();
cartRepository.save(cart);
user.setCart(cart);
userRepository.save(user);
但hibernate不更新购物车表

从SimpleParepository扩展的存储库


谁能解释一下如何更新相关对象吗?

您只需初始化关联的反面。您需要初始化拥有方:
cart.setUser(user)
因此,我无法通过保存父对象来保存相关对象?当然可以。但是如果您的孩子有一个null属性,那么映射到此属性的列也将为null。它可以工作。非常感谢你的回答
Cart cart = new Cart();
cartRepository.save(cart);
user.setCart(cart);
userRepository.save(user);