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