GAE datastore JOIN + GROUP BY
Just a few generic notes, I'm not familiar with Google App Engine:


HashMap&lt;...&gt; reference types could be Map&lt;...&gt;:

public Map&lt;String, List&lt;ListDisplay&gt;&gt; getData() {


See: Effective Java, 2nd edition, Item 52: Refer to objects by their interfaces
I'd rename this variable to result to express its purpose: 


List&lt;ListDisplay&gt; data = new ArrayList&lt;ListDisplay&gt;();


remove is unnecesary here, put will override it:


data.remove(d.getConstituency());
data.put(d.getConstituency(), hashlist);


Consider replacing the following with a Multimap:


// if null add
if (data.get(d.getConstituency()) == null) {
    List&lt;ListDisplay&gt; internal = new ArrayList&lt;&gt;();
    internal.add(d);
    data.put(d.getConstituency(), internal);
}
// else modify
else {
    List&lt;ListDisplay&gt; hashlist = data.get(d.getConstituency());
    hashlist.add(d);
    data.remove(d.getConstituency());
    data.put(d.getConstituency(), hashlist);
}



The following uses Google Guava's Multimap and much simpler:

final ArrayListMultimap&lt;String, ListDisplay&gt; data = ArrayListMultimap.create();

for (ListDisplay d : list) {
    data.put(d.getConstituency(), d);
}


If you really need Map return type you can convert it  back to Map with data.asMap() which returns a Map&lt;String, Collection&lt;ListDisplay&gt;&gt; but you cast it down safely to Map&lt;String, List&lt;ListDisplay&gt;&gt;. (ArrayListMultimap javadoc supports this as well as these Stack Overflow posts.)
Variable names in Java usually camelCase.


String PARTY_ID = (String) entity.getProperty("partyId");


Comments on the closing curly braces are unnecessary and disturbing. Modern IDEs and editors could show blocks.

    } // end loop entity2


“// …” comments at end of code block after } - good or bad?