I'm having a problem that I've spent far too long trying to figure out.
I am new to hibernate, and I have data that looks like.

and I would like to write a query that returns this data to look something like this.

If this can be done with just an SQL statement that would be ideal as I'm still very unfamiliar with some of the finer features of hibernate. I've tried many things, and I thought I could do it with Unions, but unfortunately hibernate doesn't support unions.
Any suggestions is appreciated. If the suggestion is a more hibernate oriented approach then as much detail as possible would be appreciated.
UPDATE://
FROM ANGELO'S Comments, I was able to get this working using the following:
String newQuery = "";
List<?> list = null;
Query quer = null;
Session session = null;
session = HibernateUtilities.getSessionFactory().openSession();
newQuery =
"SELECT DISTINCT o.APPLICATION,(SELECT DATA FROM " + dataTable + " gsm WHERE gsm.APPLICATION = o.APPLICATION AND gsm.NETWORK_TYPE = 'GSM Usage') AS gsm, (SELECT DATA FROM " + dataTable + " wifi WHERE wifi.APPLICATION = o.APPLICATION AND wifi.NETWORK_TYPE = 'Wi-Fi Usage') AS wifi, (SELECT DATA FROM " + dataTable + " roam WHERE roam.APPLICATION = o.APPLICATION AND roam.NETWORK_TYPE = 'ROAMING Usage') AS roaming FROM " + dataTable + " o";
quer = session.createQuery(newQuery);
list = quer.list();
session.close();