hibernate实体映射空对象

hibernate实体映射空对象,hibernate,jakarta-ee,Hibernate,Jakarta Ee,我有一个hibernate映射 @Entity @Table(name="user") public class User{ @ManyToOne(optional=true) @JoinColumn(name="email_id",nullable=true) private Email email; } 在我的映射中,电子邮件对象有时是空的。我得到下面的错误,因为email_id和email字段不为null,我只想在User表上插入,如果对象为null,则需要跳过email表。我如何

我有一个hibernate映射

@Entity
@Table(name="user")
public class User{


@ManyToOne(optional=true)
@JoinColumn(name="email_id",nullable=true)
private Email email;

}
在我的映射中,电子邮件对象有时是空的。我得到下面的错误,因为email_id和email字段不为null,我只想在User表上插入,如果对象为null,则需要跳过email表。我如何处理这种情况?

org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.TransientPropertyValueException: object references an unsaved transient instance - save the transient instance before flushing
如果我使用
@ManyToOne(cascade=CascadeType.ALL),我将得到空异常


请帮助我,提前谢谢。

我想你应该在同一个对象(
用户
)中有电子邮件id,如果你希望
电子邮件
表是只读的,那么你就不需要保存你的电子邮件。

也许你可以用指定电子邮件PK列的选项来补充你的注释。

否,我需要将此电子邮件对象分开,我不能在用户对象内使用此对象,因为有时会插入电子邮件对象。@user1335605,我并不是说您要将所有属性保留在
用户
中。只需将
email\u id
保留为
user
中的属性即可。