gpt4 book ai didi

java - Hibernate - 通过更新父对象创建子对象,但需要生成子对象的 key

转载 作者:行者123 更新时间:2023-12-01 12:08:53 24 4
gpt4 key购买 nike

在我的工作中,我正在编写类似这样的代码......

父对象是用户,子对象是配置文件。我们创建 Profile 的方式是先执行 user.addProfile(profile) ,然后执行 service.update(user) 之类的操作。因此,我不会直接创建子对象,但由于它们具有关系和级联,我相信这就是创建子对象的方式。

在这种情况下,我需要创建的配置文件的 key ,在更新父对象时可以这样做吗?

最佳答案

这就是双向映射发挥作用的时候。在配置文件实体中创建用户属性。不保存 User 实体,而是保存 Profile 实体。

例如:

profile.setUser(user)
session.saveOrUpdate(profile)

profile.getkey()//this will have the key and it can be used immediately

更新:

Profile p = ... //somehow created this
User u = session.get(id,User.class);
u.addProfile(p);
session.saveOrUpdate(u);

p = getLastCreatedChild(u.getProfiles()); // based on the time it is created/ sorted by id you can get the last created child here
p.getKey();// will have the id


-------------User.java------------------

public class User {

@OneToMany(cascade = CascadeType.ALL)
private Set<Profile> profiles;
....
}

关于java - Hibernate - 通过更新父对象创建子对象,但需要生成子对象的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27384322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com