问题描述
我正在尝试在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 (将#修改为@)