私はこのエンティティを持っています。メッセージには "parent"というプロパティがあり、このプロパティもMessageです。これはparent = nullのメッセージを作成し、parent = messageのメッセージはコメントになるので、ツリーメッセージとコメントがあります。Hibernate @ManyToOne自身を呼び出す
@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;
しかし、私はここのコード私のエンティティを保存しようとすると:
org.hibernate.TransientPropertyValueException:-nullでないプロパティ 参照私は、常にこのメッセージが表示されます
Message message = messageRepository.save( MapperUtils.getInstance().map(messageDTO,Message.class) );
を一時的な値 - 一時的なインスタンスは、現在の操作である の前に保存する必要があります。gara.models.Message.user - > gara.models.User;
org.hibernate.TransientPropertyValueException:-nullでないプロパティ
参照過渡値 - 一時的なインスタンスが 現在の操作の前に保存する必要があります: ネストされた例外はjava.lang.IllegalStateExceptionあるgara.models.Message.user - > GARA。 models.User」私はそれを修正できたり周りの仕事がありますどのように
?
ありがとう!
あなたは私もこの行を見ました:MapperUtils.getInstance()。map(messageDTO、Message.class)は、user-> idプロパティなしでオブジェクトを解析します。 –