I think viewEntity Can solve your problem.
Add the following view-entity in endityengine.xml.
<view-entity entity-name="PartyInfo"
package-name="org.ofbiz.party"
title="View that combines Person, Paryt and PartyGroup">
<member-entity entity-alias="P" entity-name="Party"/>
<member-entity entity-alias="PG" entity-name="PartyGroup"/>
<member-entity entity-alias="PER" entity-name="Person"/>
<alias entity-alias="P" name="partyId"/>
<alias entity-alias="PG" name="groupName"/>
<alias entity-alias="PER" name="firstName"/>
<alias entity-alias="PER" name="lastName"/>
<alias entity-alias="P" name="partyTypeId"/>
<view-link entity-alias="P" rel-entity-alias="PG" rel-optional="true">
<key-map field-name="partyId"/>
</view-link>
<view-link entity-alias="P" rel-entity-alias="PER" rel-optional="true">
<key-map field-name="partyId"/>
</view-link>
</view-entity>
which will have the party information including firstName,lastName Or GroupName (if PartyType = 'PARTY_GROUP') and PartyTypeId.
EntityCondition partyCondition = EntityCondition.makeCondition(UtilMisc.toList(
EntityCondition.makeCondition("partyId", EntityOperator.EQUALS, prtyId)), EntityOperator.AND);
List<GenericValue> partyDetails = delegator.findByCondition("PartyInfo", partyCondition, null, null);
Note : You cannot query databse using this table 'PartyInfo' ( Incase you are not aware of View entity)