Med query caching menade jag CachedSqlEntityProcessor . Jag föredrar den sammanslagna lösning som i din andra fråga Duplicerade poster i MySQL GROUP_CONCAT . Men CachedSqlEntityProcessor hjälper också om p_id upprepas om och om igen i resultatuppsättningen av huvudfrågan publication_authors , och du har mindre oro över den extra minnesanvändningen.
Uppdatering:Det verkar som att du har två andra frågor lösta, förmodligen kan du gå åt båda hållen, jag lägger upp det korta exemplet/pekaren som du begärde i alla fall ifall andra skulle tycka att det är praktiskt att ha
<entity name="x" query="select * from x">
<entity name="y" query="select * from y" processor="CachedSqlEntityProcessor" where="xid=x.id">
</entity>
<entity>
Det här exemplet togs från wiki . Detta kommer fortfarande att köra varje fråga "välj * från y där xid=id" per id från huvudfrågan "välj * från x". Men det kommer inte att skicka in samma fråga upprepade gånger.