Med forespørgselscaching mente jeg CachedSqlEntityProcessor . Jeg går ind for den fusionerede løsning som i dit andet spørgsmål MySQL GROUP_CONCAT duplicate entries . Men CachedSqlEntityProcessor vil også hjælpe, hvis p_id gentages igen og igen i resultatsættet af hovedforespørgslen publication_authors , og du er mindre bekymret over det ekstra hukommelsesforbrug.
Opdatering:Det ser ud til, at du har løst to andre spørgsmål, sandsynligvis kan du gå begge veje, jeg poster det korte eksempel/pointer, som du anmodede om alligevel, hvis andre finder det praktisk at have
<entity name="x" query="select * from x">
<entity name="y" query="select * from y" processor="CachedSqlEntityProcessor" where="xid=x.id">
</entity>
<entity>
Dette eksempel er taget fra wiki . Dette vil stadig køre hver forespørgsel "vælg * fra y hvor xid=id" pr. id fra hovedforespørgslen "vælg * fra x". Men det vil ikke sende den samme forespørgsel gentagne gange.