{
String appName = window.getPortletDefinition().getApplication().getName();
String portletName = window.getPortletDefinition().getPortletName();
String entityId = window.getPortletEntityId();
// always read in to get a fresh copy for merge
Criteria c = new Criteria();
c.addEqualTo("dtype", DISCRIMINATOR_USER);
c.addEqualTo("applicationName", appName);
c.addEqualTo("portletName", portletName);
c.addEqualTo("entityId", entityId);
c.addEqualTo("userName", userName);
QueryByCriteria query = QueryFactory.newQuery(DatabasePreference.class, c);
Map<String, DatabasePreference> mergeMap = new HashMap<String, DatabasePreference>();
List<DatabasePreference> deletes = new LinkedList<DatabasePreference>();
List<DatabasePreference> updates = new LinkedList<DatabasePreference>();
List<PortletPreference> inserts = new LinkedList<PortletPreference>();