java – @OneToMany注释有用吗?

在宠物项目中使用这样的注释似乎工作得很好,我是老板,有两个员工,等等.但在实际规模的项目中,你会结束与100.000调用相关的会计年度或拥有1.000.000公民的城市并天真地尝试在ArrayList中检索所有这些导致OutOfMemory错误.

一个好的方法是不定义这样的关系(但是@ManyToOne)并检索分页的结果,以便用它们做任何你想做的事情.

那么,是否有任何Observer模式或类似处理大型数据库模型? ¿您可以用来管理内存的任何配置?

最佳答案 假设您有一个应用程序,显示特定城市的所有公民数据.这个城市有1.000.000公民,所以你想在用户界面上显示这么多行.

您是否认为一次显示这么多数据是有意义的还是您认为分页是必要的?我会说后者就是这种情况,因为没有人会读取UI上的100万条记录.

只是建议一些东西,如果你有这么多数据,不要使用实体来显示UI上的信息.使用投影代替包含您需要的确切数据,您也可以轻松地引入分页.

有多种方法可以定义投影,最简单的方法是使用Spring Data JPA的功能,它基本上定义了接口.

当然,如果你有一份必须处理所有公民的工作,那么同时获取所有东西但是做某种批量执行并不是一个好主意.将数据拆分为单独的部分,然后处理这些部分.在这种情况下,使用投影也是一个好主意.

点赞