db代码如下 检查了下 感觉没问题的..

来源:8-4 客户端数据流封装-统一的写入-3

慕用1394343

2019-02-13

@Entity
@Table(name = "TB_COMMENT")
public class Comment {
    @Id
    @PrimaryKeyJoinColumn
    // 主键生成存储的类型为UUID,自动生成UUID
//    @GeneratedValue(generator = "uuid")
    // 把uuid的生成器定义为uuid2,uuid2是常规的UUID toString
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    // 不允许更改,不允许为null
    @Column(updatable = false, nullable = false)
    private String id;

    //对应的评论者
    @JoinColumn(name = "senderId")
    //不可选,必须有一个发送者,急加载, 串联级别ALL
    @ManyToOne(optional = false, fetch = FetchType.EAGER , cascade = CascadeType.ALL)
    private User sender;

    @Column(insertable = false,updatable = false,nullable = false)
    private String senderId;


    //对应的接收人
    @JoinColumn(name = "receiverId")
    //不可选,必须有一个发送者,急加载, 串联级别ALL
    @ManyToOne(optional = false, fetch = FetchType.EAGER , cascade = CascadeType.ALL)
    private User receiver;

    @Column(insertable = false,updatable = false,nullable = false)
    private String receiverId;

    // 对应的帖子的id
    @JoinColumn(name = "postId")
    @ManyToOne(optional = false, fetch = FetchType.EAGER , cascade = CascadeType.ALL)
    private Post post;
    @Column(insertable = false,updatable = false,nullable = false)
    private String postId;

    // 此评论对应的回复集合
    //懒加载
    @JoinColumn(name = "commentId")
    @LazyCollection(LazyCollectionOption.EXTRA)
    @OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
    private Set<Reply> replies = new HashSet<>();

    //类容
    @Column(nullable = false)
    private String content;

    //附件
    @Column
    private String attach;

    //创建时间
    @CreationTimestamp
    private LocalDateTime createAt = LocalDateTime.now();


    public Comment(User sender,User receiver , Post post, WriteCommentModel model) {
        this.id = model.getId();
        this.sender = sender;
        this.post = post;
        this.content = model.getContent();
        this.receiver = receiver;
    }

    public Comment() {
    }

下面的就是些get set了

写回答

2回答

Qiujuer

2019-02-14

你在QQ群里么?如果在群就好办了。 可以把代码给我发来下我调试看看。 晚点我先看看你的代码情况。
0
2
Qiujuer
回复
慕用1394343
这个....按理说应该有点儿玄了,这个地方应该是外层更改了实例的信息导致id等信息变化,如果使用all或全部查询所有关联实例的信息导致出现错误。改成MERGE只是把权限缩小了,所以没有触发该问题了。
2019-02-16
共2条回复

慕用1394343

提问者

2019-02-13

然后我也重新创建了数据库,,还是那样

0
0

手把手开发完整的即时通讯App 客户端+服务端+MVP架构

客户端+服务端+MVP架构+封装思想+主流框架

1755 学习 · 874 问题

查看课程