【发布时间】:2023-11-06 16:50:02
【问题描述】:
@Entity
public class Record implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@OneToMany(fetch=FetchType.EAGER)
@Fetch(FetchMode.SUBSELECT)
@Cascade(value={CascadeType.SAVE_UPDATE})
private List<Comment> commentList=new ArrayList<Comment>();
}
@Entity
public class Comment implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@Column(columnDefinition="text")
private String content;
}
我的客户端中有一条记录,并在列表中添加了一些 cmets。
使用 RMI 方法:void update(Record reocord)。
然后在服务器上,休眠将 id=0 的评论保存到数据库中,并给出生成的 id。
如何分配这些客户端中评论的 ID?如果没有,另外一次我调用 update(Record reocord),评论将被添加两次。
也许:Record update(Record reocord),但我认为如果 Record 有大数据是不明智的。
【问题讨论】:
-
好吧,我最后还是选择了每次添加新的时候都返回comment的id来解决这个问题。我最好对数据库关系和架构做一个更好的设计。