/** * Update a tag. * * @param tag Tag to update * @param userId User ID * @return Updated tag */ public Tag update(Tag tag, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the tag Query q = em.createQuery("select t from Tag t where t.id = :id and t.deleteDate is null"); q.setParameter("id", tag.getId()); Tag tagFromDb = (Tag) q.getSingleResult(); // Update the tag tagFromDb.setName(tag.getName()); tagFromDb.setColor(tag.getColor()); tagFromDb.setParentId(tag.getParentId()); // Create audit log AuditLogUtil.create(tagFromDb, AuditLogType.UPDATE, userId); return tagFromDb; }