Met querycaching bedoelde ik de CachedSqlEntityProcessor . Ik geef de voorkeur aan de samengevoegde oplossing zoals in uw andere vraag MySQL GROUP_CONCAT dubbele vermeldingen . Maar CachedSqlEntityProcessor zal ook helpen, als p_id keer op keer wordt herhaald in de resultatenset van de hoofdquery publication_authors , en u hoeft zich minder zorgen te maken over het extra geheugengebruik.
Update:het lijkt erop dat je twee andere vragen hebt opgelost, waarschijnlijk kun je alle kanten op, ik plaats het korte voorbeeld / de aanwijzer zoals je hebt gevraagd, voor het geval anderen het handig vinden om te hebben
<entity name="x" query="select * from x">
<entity name="y" query="select * from y" processor="CachedSqlEntityProcessor" where="xid=x.id">
</entity>
<entity>
Dit voorbeeld is afkomstig van wiki . Dit zal nog steeds elke zoekopdracht "select * from y where xid=id" per id van de hoofdquery "select * from x" uitvoeren. Maar het zal niet herhaaldelijk dezelfde zoekopdracht verzenden.