// TODO (after ERRAI-366): make this method package-private @EventHandler("saveButton") public void onSaveButtonClicked(ClickEvent event) { TypedQuery<Department> deptQuery = em.createNamedQuery("departmentByName", Department.class); deptQuery.setParameter("name", department.getText()); Department resolvedDepartment; List<Department> resultList = deptQuery.getResultList(); if (resultList.isEmpty()) { resolvedDepartment = new Department(); resolvedDepartment.setName(department.getText()); } else { resolvedDepartment = resultList.get(0); } Item item = itemBinder.getModel(); item.setDepartment(resolvedDepartment); item.setAddedBy(user); item.setAddedOn(new Date()); fooList.getItems().add(item); em.persist(fooList); em.flush(); if (afterSaveAction != null) { afterSaveAction.run(); } }
@PostConstruct private void setupSuggestions() { MultiWordSuggestOracle iso = (MultiWordSuggestOracle) name.getSuggestOracle(); for (Item i : em.createNamedQuery("allItemsByName", Item.class).getResultList()) { iso.add(i.getName()); } MultiWordSuggestOracle dso = (MultiWordSuggestOracle) department.getSuggestOracle(); for (Department d : em.createNamedQuery("allDepartments", Department.class).getResultList()) { dso.add(d.getName()); } }