I'm pretty close to setting this up in my project config. Here is what it looks like (with the other customizations removed):
<ormd2-configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<orm-configuration name="Doctrine2">
<attribute-types>
<struct name="Entity">
<struct name="cache" help-text= "" help-url="http://doctrine-orm.readthedocs.org/en/latest/reference/second-level-cache.html">
<attribute name="usage" type="enum" enum-values="READ_ONLY|NONSTRICT_READ_WRITE|READ_WRITE" help-text=""/>
<attribute name="region" type="string" help-text=""/>
</struct>
</struct>
</attribute-types>
</orm-configuration>
</ormd2-configuration>
The only problem is, the XML output looks something like this now
<entity name="Db\Entity\TestOrg">
<cache>
<region>default_region</region>
<usage>NONSTRICT_READ_WRITE</usage>
</cache>
</entity>
Actually what we need is for the properties to be attributes of cache like this
<entity name="Db\Entity\TestOrg">
<cache region="default_region" usage="NONSTRICT_READ_WRITE"/>
</entity>