【发布时间】:2018-05-14 09:43:22
【问题描述】:
我有这个实体消息具有属性“父”这个属性也是消息类型。这是创建一条带有 parent=null 的消息,带有 parent=message 的消息将是一条评论,所以我有一个树消息和 cmets。
@Entity
@Table(name = "message")
public class Message extends BaseModel{
@Id
@Column(name = "id", updatable = false, nullable = false)
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name="user_id", nullable=false)
private User user;
private String text;
@ManyToOne(fetch = FetchType.EAGER, optional = true)
@JoinColumn(name = "message_id",nullable = true)
private Message parent;
但是,当我尝试在此处保存我的实体时,代码:
Message message = messageRepository.save(
MapperUtils.getInstance().map(messageDTO,Message.class)
);
我总是收到这条消息:
org.hibernate.TransientPropertyValueException:非空属性 引用瞬态值 - 瞬态实例必须先保存 当前操作:gara.models.Message.user -> gara.models.User; 嵌套异常是 java.lang.IllegalStateException:
org.hibernate.TransientPropertyValueException:非空属性
引用瞬态值 - 瞬态实例必须先保存 当前操作:gara.models.Message.user -> gara.models.User"
我该如何修复它或有解决方法?
谢谢!
【问题讨论】:
标签: java hibernate spring-boot jpa orm