这两天,被一个 bug 困扰,非常纠结。
这个bug是表现这样的。在一个模块里,当这个模块对应的 实体 的两条数据里的一个字段 orderId 值相同时,其中的一条数据就不会出来。
找了很久,最后发现,在里面的一对多关系定义中,出现了这样的语句:
@OneToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REMOVE}, mappedBy="parent", fetch=FetchType.EAGER)
@OrderBy(value = "orderId")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@IndexColumn(name="orderId")
public List<GroundModule> getChildren() {
return children;
}
里面有 @IndexColumn(name="orderId") 这个语句。我把它去掉后,这个问题就解决了。
为什么?现在还搞不清。