Hibernate OneToOne尝试从空的一对一属性分配ID

问题描述

我正在尝试在2个实体之间创建一对一关系,其中“父”标识将“子”标识为外键。 这是我的2个实体:

@Entity
@Table(name = "users")
public class User extends PanacheEntityBase implements Serializable {

    @Id
    @GeneratedValue(generator = "UUID")
    @GenericGenerator(name = "UUID",strategy = "org.hibernate.id.UUIDGenerator")
    String id;

    @OneToOne(mappedBy = "user",cascade = CascadeType.ALL,optional = false)
    Profile profile;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Profile getProfile() {
        return profile;
    }

    public void setProfile(Profile profile) {
        this.profile = profile;
    }
}

@Entity
@Table(name = "profiles")
public class Profile extends PanacheEntityBase implements Serializable {

    @GenericGenerator(name = "generator",strategy = "foreign",parameters = @Parameter(name = "property",value = "user"))
    @Id
    @GeneratedValue(generator = "generator")
    @Column(name = "user_id")
    String id;

    @OneToOne
    @MapsId
    @JoinColumn(name = "user_id")
    User user;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}

在保存时,我构建了对象并将其持久保存:

    User user = new User();
    Profile profile = new Profile();
    user.setProfile(profile);
    userRepository.persist(user);

但是我得到这个错误

org.jboss.resteasy.spi.UnhandledException:javax.persistence.PersistenceException:org.hibernate.id.IdentifierGenerationException:尝试从空的一对一属性[com.myne.entities.Profile.user]分配ID

我在做什么错了?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)