假设我们有一个实体“某物”,并且该物与某些“数据”具有一对多(数百万倍)的关系。
Something 1 -> * Data
Data 1 -> 1 Something
现在,如果我们想添加一些数据对象,我们应该这样做:
Something.getDataList().add(Data)
这实际上将从数据库中提取所有数据对象,这不是最佳的恕我直言。
但是,如果我从某事中删除关系,并将其保留在数据中,我将能够准确地添加和检索我要求使用 DAO 的那些对象:
Something
Data 1 -> 1 Something
现在数据访问界面将如下所示:
Something.addData(Data) // will use DataDAO to save object
或者
Something.addData(List<Data>) // will use same DataDAO batch insert
我需要一些指导,也许我缺乏JPA的一些知识,不需要这个?此外,我不确定实体是否以这种方式自然,因为数据是由它们的方法提供的,但实际上并未包含在实体中,(如果这是正确的,那么如果存在性能关键操作处理,我应该删除每个一对多关系与那个特定的实体,这也是不自然的)。
在我的特殊情况下,我有很多 REST 消费者会定期更新数据库。我正在使用 ObjectDB、JPA ......但这里的问题更抽象。