ORMLite for Android不使用foreignAutoRefresh自动刷新外来对象

And*_*ega 4 java android foreign-keys ormlite

这是我的问题:我有不同的实体链接到其他人,直到嵌套深度为3.我在每个对象中的所有外来字段都注明了

@DatabaseField(foreign = true, foreignAutoRefresh = true)
Run Code Online (Sandbox Code Playgroud)

但是只有嵌套深度为2才能获得实际的autoRefreshed异物.

例如,如果我查询A实体然后我这样做:

A.getB().getC().getD()
Run Code Online (Sandbox Code Playgroud)

对于实体B和CI已经具有所有字段,而对于实体DI仅具有获取的ID,并且我需要调用dao.refresh()方法以获取所有D字段.这是一个限制吗?我在文档上找不到任何相关内容.

Gra*_*ray 5

编辑:

因此,在创建了一些更好的单元测试并进行了更多调查后,结果证明这是一个错误. ORMLite错误地处理maxForeignAutoRefreshLevel@DatabaseField注释中的设置.现在(因为你似乎已经想通了,看着你的答案),你需要添加foreignAutoRefresh = truemaxForeignAutoRefreshLevel = 3C在你的领域B对象和D领域的C对象也是如此.那应该解决它.

我创建了以下错误报告:

https://sourceforge.net/tracker/?func=detail&aid=3530801&group_id=297653&atid=1255989

我已经修复了trunk中的问题,并且我已经开始推出4.41版本.自上次发布以来已经有一段时间了,这是一个很好的时间.