 <p>Not sure if this will be helpful to anyone, but I did get this working.</p> <ol> <li>Removed the abstract class and made it an interface with a single public getEncounterId() method</li> <li>Modified FooEncounter to implement the above interface</li> <li>Removed generics from the EncounterPDFExport class</li> <li>Modified the encounter field to utilize the above interface rather than a generic</li> <li><p>Apparently, I'm hitting some Hibernate bug/limitation when accessing fields within FooEncounter. Accessing Encounter within EncounterPDFExport works OK, though. I modified my Spring Data JPA Repository to look like the following (note the modification from finding by encounter.encounterId vs. just encounter):</p> <pre><code>@Repository public interface EncounterPDFExportRepository extends PagingAndSortingRepository&lt;EncounterPDFExport, Long&gt; { EncounterPDFExport findOneByEncounter(@Param("encounter") Encounter encounter); } </code></pre></li> </ol> <p>The Hibernate bug in question seems to be related to <a href="https://jira.spring.io/browse/DATAJPA-836" rel="nofollow">https://jira.spring.io/browse/DATAJPA-836</a>.</p>