我正在开发一个 API 来访问存储在系统中的数据。该系统包含与这些约会相关的人员、约会和程序等内容。我的应用程序将严格只读。
我正在使用带有 RowMapper 的 Spring 来构建诸如“ Person
”、“ Appointment
”和“ Procedure
”之类的对象。我对每个元素都有一个 DAO。(即:PersonDAO.getById()
, PersonDAO.getByName()
, ..)。
问题在于Appointment
引用了一个Person
对象。Person
在对象中引用 that的约会会很好Person
,但是如果我开始加载这些约会,它就会变成循环引用。
所以,我想我的问题是处理这个问题的正确方法只是将引用(Ids)放在 POJO 中,然后让业务层(?)进行正确的调用来获取信息?或者是否可以在实际 POJO 中以某种方式传递对 DAO 的引用,以便我可以在引用时延迟加载对象对象?但是你如何处理循环引用呢?当我有一个Person
并且我懒惰地加载他们所有的约会时,这些约会也会有一个与之关联的人。当我加载它时Person
,它可能具有与Person
我正在加载约会的不同信息。
Person
(对象 x)延迟加载 -> 约会可以延迟加载Person
(对象 x')。
因为Person
当我懒洋洋地加载他们的约会时可能已经改变了。我真的需要这个Person
对象Appointment
来引用同一个Person
对象。
我全都被这件事吸引住了。我知道我可以“让它发挥作用”,但我想尝试找到一个好的解决方案。我正在考虑为此使用hibernate,但认为它真的只是矫枉过正。也许不是。