今天debug的时候,发现之前都没有注意的点。项目用的是hibernate,实体类为了映射数据库关系,一般实体类里都会含有另实体作为外键关联。比如 public class A {
private int aa;
private int bb;
private B b; //这个就是另一个类
}然后,我后台接到前台包装好的json数据转化为 List<A> lista ,这个数组里面只有两个 A对象,所以我想当然地认为lista.size= 2。但发现size并不是2,而是5。我最后想了下好像它是检索了B对象下不为空的属性,这才是size。大神们可以给个准确的答案吗?
private int aa;
private int bb;
private B b; //这个就是另一个类
}然后,我后台接到前台包装好的json数据转化为 List<A> lista ,这个数组里面只有两个 A对象,所以我想当然地认为lista.size= 2。但发现size并不是2,而是5。我最后想了下好像它是检索了B对象下不为空的属性,这才是size。大神们可以给个准确的答案吗?
如果A表和B表是1对多的关联关系的话,那B就要配成List<B>
否则数据库检索是按笛卡儿积来给出结果,那就是A和B负责条件的结果的乘积。单纯的json转对象不存在你说的两个对象变成5个的情况。
要把问题分开,看看影射关系配的对不对,数据库执行的sql是什么样的。
★答题协议★