使用文档中的示例:我有通过连接表连接的医生和患者。 现在我从Doctor中删除了一个患者,该工作正常,即连接表中的行消失了:
doctor.remove(patient);
有没有办法可以检索剩余的(n-1)患者而无需从数据库重新加载Doctor,即
doctor.getAll(Patient.class);
在没有重新加载Doctor的情况下执行此操作时,我仍然可以获得刚刚删除的条目。 缓存清除也不起作用。 只有当我从数据库重新加载医生时,删除的条目才会消失。 这是唯一有效的方法吗?
答案 0 :(得分:0)
这正是框架的工作原理。这段代码:
doctor.remove(patient);
从连接表中删除记录。之后,来电:
doctor.getAll(Patient.class);
将不会返回被移除的患者。我通过在https://github.com/javalite/activejdbc/blob/master/activejdbc/src/test/java/org/javalite/activejdbc/Many2ManyRelationshipTest.java中编写其他测试方法对此进行了测试。
以下是我添加的测试:https://gist.github.com/ipolevoy/821e986c5c7deb28a90d 如您所见,第9行只有一名患者,因为另一名患者在第7行被删除。
您可以打开登录:http://javalite.io/logging以查看框架正在执行的语句。