今天做一个ManyToOne的查询,Many端数据库里只有11条记录,但是查出来却显示有171条记录!而且前160条都是null,这是怎么回事?
@OneToMany(cascade = CascadeType.ALL,fetch=FetchType.EAGER,mappedBy="notice")
@OrderColumn(name = "ID")
public List<File> getFiles() {
return files;
}
可是数据库里只有11条记录,怎么解释?
折腾了半天,也没找出原因。
第二天早上,整理一下思路,再观察数据库,发现ID排到了171,正好和查出来的记录数相同,都是171,那么是不是注解的ID问题呢?
观察代码,发现有一个“ @OrderColumn(name = "ID") ” ,于是把这句删了,结果就正常了!
原来@OrderColumn注解会根据指定的列进行排序,哪怕只有一条记录,但如果这条记录的ID是100,那也会查出100个对象来,只不过前面99个都是null。